Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA多重连接_Jpa_Join_Jpql - Fatal编程技术网

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