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

工作遇到实体A 继承 实体B,查询时遇到 “找不到属性”,如图:

nested exception is org.hibernate.MappingException: Unknown entity: java.util.ArrayList

问题描述:在hql查询的list 的时候,如图:

String hqlAccept = "from xxx t where t.cdBatch = ? ";
List 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上。

你可能感兴趣的:(hibernate,java,java)