使用jpa和left join连接两个不相关的实体

8wigbo56  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(217)

我需要在工作中加入两个不相关的实体。不幸的是,由于数据损坏,我无法在db层上创建一个干净的引用。所以我需要用jpa做,没有参考。
多亏了互联网上的一些博客文章,我找到了在同一个criteria builder上创建两个独立根对象的解决方案:

Root<Entity1> rootEntity1 = c.from(Entity1.class);
Root<Entity2> rootEntity2 = c.from(Entity2.class);

c.where(cb.equal(rootEntity1.get("sharedAttribute"), rootEntity2.get("sharedAttribute")));

c.multiselect(rootEntity1.get("id"), rootEntity2.get("id"));

( Entity1 以及 Entity2 都是虚构的,所以别担心……)
这是可行的,但问题是这会造成 JOIN 我需要一个 LEFT JOIN 因为有些情况下共享属性 null 不存在任何连接,我仍然想得到第一个根实体的信息在这种情况下。
还有其他可能的解决办法吗?我不想使用本机查询。。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题