JPA多重连接
我有这些课程JPA多重连接,jpa,join,jpql,Jpa,Join,Jpql,我有这些课程 class Project { @ManyToOne Company owner; @ManyToMany Set<Person> resources; } class Company { @ManyToOne Country country; } class Person { } 它尝试将r与c连接起来,当然没有owner属性,并且在DataNucleus内部引发了NullPointerException。这应该满足您的期望: SELECT
class Project {
@ManyToOne Company owner;
@ManyToMany Set<Person> resources;
}
class Company {
@ManyToOne Country country;
}
class Person {
}
它尝试将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
我还尝试了从项目p中选择r内部连接p.resources r存在的地方从公司c中选择c,其中c.country=:country和p.owner=c,但它抱怨“owner”不是个人属性。据我所知,连接默认为内部连接,因此可以省略内部连接。这同样适用于as。实际上,解决方案只是我给出的第一部分,我说它不起作用。你试过在owner.country上使用一个简单的where条款吗?从项目p中选择资源内部连接p.resources作为资源,其中p.owner.country=:country
SELECT resource FROM Project p INNER JOIN p.resources as resource where p.owner.country = :country