2013-09-22 40 views
0

我有一个关于HQL的问题。假设,我有两个表。例如,表“人员”和表格“手机号码”。一人多手机号码。关系是@OneToManyHQL选择何时映射对象通过使用注释

在我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的一个对象。

在此先感谢。

回答

1

你可以在其他实体

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

Read more about it in the documentationJOIN

+0

谢谢,但我没有使用JOIN语句。而不是我使用注释。 – Chala

+0

@Chala你正在使用HQL。您需要使用适当的HQL语法来实现您的目标。这个用例与注释无关。 –

+0

如果我在这个陈述中使用注释,可以吗? – Chala