【发布时间】:2014-02-16 09:56:59
【问题描述】:
几天来,我一直在关注后续问题,但无法正常工作。这是问题所在。我有四个表(A、B、C、D),它们通过任何类型的外键都没有关联。但是,他们确实有一个名为“superId”的列。
任务是从 A 表中取出所有记录,从其他记录中找到匹配 'superId'(如果存在)的记录,并通过 JPA 的构造函数表达式返回它们。
关于 JOIN。由于表没有关系,我不能做左 JOIN(或任何其他 JOIN)。
我尝试成功使用 MULTISELECT,但它仅在我使用“a.superId = b.superId”进行隐式连接时才有效。这会导致问题,因为这三个表可能没有匹配的记录,这将使查询返回空集。这不会飞。
我没有其他想法,这对我的项目进行至关重要。请原谅我对问题的简单描述 - 从我的手机发送。
【问题讨论】:
-
JOIN不需要存在外键。 -
你确定吗?你能用一些参考资料或 JPA 2 的例子来支持它吗?
-
这是关于 JPA 2 的。我将编辑标题
-
你不能只用外键约束注释类吗? JPA 是否真的验证它在数据库中的存在?
-
据我所见,如果我尝试进行常规连接,则该语法在 JPA 中将无效。您能否为此展示一个 SQL 查询示例?我可以使用本机 SQL 查询,但我没有尝试过,因为我不确定它是否会起作用。那会是 3 个左连接吗?
标签: java sql jpa-2.0 postgresql-9.1