Hibernate多表联查报错Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne
程序员文章站
2022-04-12 17:50:07
...
报错:
Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.hibernate.entity.CommodityEntity.sid references an unknown entity: int
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:109)
at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1598)
at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1521)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1422)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
at com.hibernate.util.HibernateUtil.<clinit>(HibernateUtil.java:19)
... 23 more
网上大多数都是说
原因有二:
(1) 被引用的类的class上没添@Entity注解
(2)没有添sessionFactory的annotatedClasses属性列表中去或者是配置文件中没有添加
Mapping-class
我报错都不是因为这两个原因,而是在我的实体类中,我的主外键的类型写错,在多对一中,外键的类型必须是外键的实体类类型
比如:
修改前:
修改后:
注意:修改后的get/set也需要重新生成
虽然我老是犯这种低级错误,但不会写bug的程序员不是好程序员哦!