我有这些课
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。
最佳答案
这应该符合您的预期:
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
关于JPA 多重连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13741096/