0

我有一个关于 HQL 的问题。假设,我有两个表。例如,表“人员”和表“手机号码”。一个人多个手机号码。关系是@OneToMany

在我的 Person.java 类中,这是一个实体,我有一些字段,其中一个字段是

List<MobileNumber> mobiles; // (list of mobile numbers). 

问题是这样的:我想在 HQL 中访问 MobileNumber.java 类的字段之一。像这样 :

Query = EntityManager.createQuery("select p.someField from Person where p.mobiles.someField = "value" );

MobileNumber 对象映射到 Person 对象。正如我提到的关系是 OneToMany 和 Person 包含 MobileNumbers 列表。如果关系是 OneToOne 或 ManyToOne,这不是问题,因为在这种情况下,Person 对象只包含一个 MobileNumber 对象。

提前致谢。

4

1 回答 1

1

您可以JOIN在其他实体上

SELECT mobile.someField 
FROM Person person 
JOIN person.mobiles mobile 
WHERE mobile.someField = "value"

在文档中阅读有关它的更多信息

于 2013-09-22T14:52:41.690 回答