Java 在JPA2.0中从多个不带外键的表中获取数据

Java 在JPA2.0中从多个不带外键的表中获取数据,java,sql,jpa-2.0,postgresql-9.1,Java,Sql,Jpa 2.0,Postgresql 9.1,几天来,我一直在讨论下面的问题,但我无法使它发挥作用。问题就在这里。我有四个表(A、B、C、D),它们之间没有通过任何外键相互关联。Howewer,他们确实有一个专栏叫,比如说,“superId” 任务是从A表中获取所有记录,从其他具有匹配“superId”(如果存在)的记录中查找记录,并通过JPA的构造函数表达式返回它们 关于连接。因为这些表没有关系,所以我不能进行左连接(或任何其他连接) 我试图成功地使用MULTISELECT,但只有在使用“a.superId=b.superId”进行隐式连

几天来,我一直在讨论下面的问题,但我无法使它发挥作用。问题就在这里。我有四个表(A、B、C、D),它们之间没有通过任何外键相互关联。Howewer,他们确实有一个专栏叫,比如说,“superId”

任务是从A表中获取所有记录,从其他具有匹配“superId”(如果存在)的记录中查找记录,并通过JPA的构造函数表达式返回它们

关于连接。因为这些表没有关系,所以我不能进行左连接(或任何其他连接)

我试图成功地使用MULTISELECT,但只有在使用“a.superId=b.superId”进行隐式连接时,它才起作用。这会导致问题,因为这三个表可能没有匹配的记录,这将使查询返回空集。这不会飞的


我没有其他想法,这对我的项目工作至关重要。请原谅我对一个问题的简单描述-从我的手机发送

在JPA2中执行任意查询绝对不需要存在外键关系

您不能“遵循”父/子关系,因此您不能执行通常的
parentObject.childObject
操作。您必须改为使用CriteriaAPI或HQL来构造联接

见:


A
JOIN
不需要外键。您确定吗?你能用一些JPA2的参考或例子来支持它吗?这是关于JPA2的。我会编辑标题,你不就用外键约束注释类吗?JPA真的验证了它在数据库中的存在吗?据我所见,如果我尝试进行常规连接,语法在JPA中将无效。你能给我举个SQL查询的例子吗?我可以使用原生SQL查询,但我还没有尝试过,因为我不确定它是否能工作。那是3个左连接吗?