JPA多个连接

我有这些课程

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

它尝试使用c连接r,当然没有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
点赞