java - java有任何方法可以与JPA2标准API进行连接,如下所示?

  显示原文与译文双语对照的内容

我遇到了JPA2标准API的麻烦。 是否有任何方法可以使用JPA2标准API使smth成为这样?

从 Table1 Table1 t1 t1 inner inner inner inner inner inner inner inner inner inner SELECT

使用以下规则:

  • 表 table1 reference引用
  • 0 有表引用
  • 结果应该为 table1 ids

我是consfused的JPA2标准 API root 。 如何在这里情况下创建联接? 我应该使用两个:root 一个用于连接,另一个用于选择? 请回复

时间: 原作者:

使用 你可以执行常见的JPQL交叉产品连接:


SELECT t1.id FROM Table1 t1, Table2 t2 WHERE t2.t1_id = t1.id



对右联接支持的JPA支持不支持正确的Join 查询。 从这里的:

Java持久性 2.0不需要右外部连接和右外部获取连接。 使用正确 Join 类型的应用程序将不可移植。

本机SQL查询 ,因此另一个选项是使用本机SQL查询。


SELECT Table1.id FROM Table1, Table2 WHERE Table2.t1_id = Table1.id



JPQL查询将只是


select e1.id from Entity2 e2 join e2.entity1 e1



使用标准API时,它将类似于。 我讨厌这个 API ):


CriteriaQuery<String> cq = cb.createQuery(Long.class);


Root<Entity2> e2 = cq.from(Entity2.class);


cq.select(e2.get(Entity2_.entity1).get(Entity1_.id));



原作者:
...