@Column 的位置需一致:java实体与实体继承,找不到属性的原因

tech2023-05-29  61

工作遇到实体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上。

最新回复(0)