工作遇到实体A 继承 实体B,查询时遇到 “找不到属性”,如图:
nested exception is org.hibernate.MappingException: Unknown entity: java.util.ArrayList问题描述:在hql查询的list 的时候,如图:
String hqlAccept = "from xxx t where t.cdBatch = ? "; List<xxx> acceptList = xxxTwoServiceImpl.findHql(hqlAccept,batch);出现了 “ccc属性找不到!”。
很奇怪呀!!! 只是一个查询的。
查找原因,并询问同事,得知是 实体出现问题。这才注意 查询的所用的 实体 xxx 继承了其他的 实体 aaa
实体xxx:
@Entity @Table(name="xxx") public class xxx extends aaa { private String ccc; @Column(name = "ccc") public String getCcc(String ccc){ return ccc; } public void setCcc(){ this.ccc = ccc; } }实体 aaa:
@Entity @Table(name="aaa") public class aaa { @Column(name = "ddd") private String ddd; public String getDdd(String ddd){ return ddd; } public void setDdd(){ this.ddd= ddd; } }这里的实体xxx 中的 @Column 和 实体aaa 中的 @Column的 位置不一致,xxx实体中的@Column放在getCcc上,aaa实体中的@Column放在属性上。
实体继承的时候,@Column 的位置需一致,要么都放在属性上,要么放在getxxx上。