我有这种情况。想象一下,我有A级和B级。他们之间的关系是一对多的。例如,我有
// Class A
public class A {
private Integer id;
// some fields
@OneToMany(name = "A_ID", targetEntity = B.class)
private List<B> objectsB;
// getters and setters
}
// CLass B
public class B {
private Integer id;
// some fields
private Integer A_ID;
}
我想编写HQL: Query =(“从a aEntity中选择 someField ,其中aEntity.objectsB.id =:参数”);
但由于映射一个到多个A对象包含B(objectsB)列表而aEntity.objectsB.id导致错误。谁能帮我 ?
答案 0 :(得分:0)
首先,你不应该在B中有一个字段A_ID
。要么使关联单向,要么完全删除该字段,要么使关联双向,并添加从B到A的ManyToOne关联。
现在,要回答您的问题,您需要了解HQL连接:
select someField from A aEntity
join aEntity.objectsB bEntity
where bEntity.id = :parameter