4

我有这些课程

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

它尝试加入rc当然没有该owner属性,并且在 DataNucleus 内部引发了 NullPointerException。

4

1 回答 1

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
于 2012-12-06T10:41:07.380 回答