我需要在工作中加入两个不相关的实体。不幸的是,由于数据损坏,我无法在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
不存在任何连接,我仍然想得到第一个根实体的信息在这种情况下。
还有其他可能的解决办法吗?我不想使用本机查询。。
暂无答案!
目前还没有任何答案,快来回答吧!