我有这些课程
class Project {
@ManyToOne Company owner;
@ManyToMany Set<Person> resources;
}
class Company {
@ManyToOne Country country;
}
class Person {
}
如何编写JPQL以获取针对特定国家/地区公司的项目的所有资源?
下面的一个似乎不起作用(使用DataNucleus)
SELECT r FROM Project p JOIN p.resources r JOIN p.owner c WHERE c.country = :country
它尝试将r
加入c
,当然没有owner
属性,并且在DataNucleus中引发了NullPointerException。
答案 0 :(得分:2)
这应该符合您的期望:
SELECT resource FROM Project p INNER JOIN p.resources as resource
修改强>
我忘记了最初问题的一部分:
SELECT resource FROM Project p INNER JOIN p.resources as resource where p.owner.country = :country