報錯:
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的程序員不是好程序員哦!