在JPA 2.0中从没有外键的多个表中获取数据

时间:2014-01-25 09:59:19

标签: java sql jpa-2.0 postgresql-9.1

我已经在跟踪问题上磕磕绊了几天,现在我无法让它发挥作用。这是问题所在。我有四个表(A,B,C,D),它们通过任何类型的外键彼此无关。 Hovewer,他们确实有一个叫做'superId'的专栏。

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

关于JOIN。由于表没有关系,我不能做左JOIN(或任何其他JOIN)。

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

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

1 个答案:

答案 0 :(得分:0)

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

您无法“关注”父/子关系,因此您无法执行常规的parentObject.childObject事情。您必须使用Criteria API或HQL构建连接。

请参阅: