myeclipse的hibernate反转工具生成的一对一映射配置无法使用,在项目启动时就报错,
错误信息如下:
org.hibernate.AnnotationException: Unknown mappedBy in: db.Produce.qualification, referenced property unknown: db.Qualification.produce
at org.hibernate.cfg.OneToOneSecondPass.doSecondPass(OneToOneSecondPass.java:158)
at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1591)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1366)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1731)
at db.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:48)
生成的
主表类Produce的关键代码如下:
@OneToOne(fetch = FetchType.LAZY, mappedBy = "produce")
public Qualification getQualification() {
return this.qualification;
}
外表类Qualification的关键代码如下:
@OneToOne(fetch = FetchType.LAZY, mappedBy = "qualification")
@JoinColumn(name = "produce_id")
public Produce getProduce() {
return this.produce;
}
解决办法:
将外表类Qualification的配置改为:
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "produce_id")
public Produce getProduce() {
return this.produce;
}
即去掉mappedBy参数,切记不能自以为是的将外表类Qualification的配置mappedBy = “qualification”改成mappedBy = “produce”,如此改动,仍然会报错。