我有我的映射类:
@Entity
@Table(name = "contact", catalog = "pagesjaunes")
public class Contact implements java.io.Serializable {
private Integer id;
private String name;
private Set<Phone> phones = new HashSet<Phone>(0);
[...]
}
@Entity
@Table(name = "telephone", catalog = "pagesjaunes")
public class Phone implements java.io.Serializable {
private Integer id;
private Contact contact;
private String phoneNumber;
[...]
}
我可以使用Contact
在HQL
上进行类似的查询:
from Contact where phones.phoneNumber = 06487954
答案 0 :(得分:2)
不,语法不正确。 phones
是Set的路径,Set没有phoneNumber属性。你需要一个联盟来做你想做的事:
select c from Contact c
inner join c.phones [as] phone
where phone.phineNumber = '06487954'
这当然是在the documentation中解释的。
注意:[as]
表示您可以使用as
或省略它。