- Invocation of init method failed;
- nested exception is org.hibernate.MappingException:
- Repeated column in mapping for entity: com.justinmobile.lticket.domain.EcUserConsInfo column: ADD_USER (should be mapped with insert="false" update="false")
Invocation of init method failed;
nested exception is org.hibernate.MappingException:
Repeated column in mapping for entity: com.justinmobile.lticket.domain.EcUserConsInfo column: ADD_USER (should be mapped with insert="false" update="false")
异常原因:
我在EcUserConsInfo实体中建立了一个对MticketUserinfo对象的引用。其中的name对应数据库本表中名称(ec_usercons_info表要引用MTICKET_USERINFO的id从而最终找到名称)。
- @ManyToOne
- @JoinColumn(name="ADD_USER")
- @Cascade(value={CascadeType.PERSIST,CascadeType.MERGE})
- public MticketUserinfo getMticketUserinfo() {
- return mticketUserinfo;
- }
@ManyToOne
@JoinColumn(name="ADD_USER")
@Cascade(value={CascadeType.PERSIST,CascadeType.MERGE})
public MticketUserinfo getMticketUserinfo() {
return mticketUserinfo;
}
我之前建立了一个 addUser的字段其映射为(name="ADD_USER"),现在我是通过建立实体MTICKET_USERINFO的引用,那么就不在需要建立数据库表中对应的addUser字段了。去掉即可。
PS:关于是对象映射表还是从表建立域对象,个人觉得从表到域对象好。
本文探讨了在使用Hibernate过程中遇到的MappingException异常,特别是与重复列名相关的问题,并提供了通过优化对象引用避免该异常的方法。通过实例代码展示如何在实体类中正确配置引用关系,以及去除不必要的数据库字段,从而提升代码质量和数据库性能。

4040

被折叠的 条评论
为什么被折叠?



