欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

我报错都不是因为这两个原因,而是在我的实体类中,我的主外键的类型写错,在多对一中,外键的类型必须是外键的实体类类型
比如:
修改前:
Hibernate多表联查报错Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne
修改后:
Hibernate多表联查报错Caused by: org.hibernate.AnnotationException: @OneToOne or @ManyToOne
注意:修改后的get/set也需要重新生成

虽然我老是犯这种低级错误,但不会写bug的程序员不是好程序员哦!