JPA 条件查询 + 在 rowid 上自连接



我正在尝试编写JPA标准查询。

Select * from classA t1 
inner join
  (SELECT rowid
     FROM classA 
      where  conditions...
      ORDER BY clause
   )t2 
 on t1.rowid = t2.rowid
ORDER BY clause
where  rownum <= 500

我在将主条件查询与内部条件查询(带谓词)联接时遇到问题?.是否有可能在条件查询(而不是根)上做联接?

任何帮助都非常感谢。注意:域类已经具有复合PK-用嵌入ID标记。

CriteriaQuery连接

只能在实体之间显式定义的关系上定义。 例如,在您的示例中,要ClassA连接到自身,需要一个显式字段,如下所示:

@ManyToOne
@JoinColumn(name = "linked_class_a")
private ClassA linkedClassA

是否有可能在条件查询(而不是根)上做联接?

简单的答案是否定的 - 正如你提到的,一个CriteriaQuery可以定义多个根,但这些根最终成为笛卡尔乘积(CROSS JOIN s),这可能非常低效。

相关内容

  • 没有找到相关文章