1

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

メイン基準クエリを内部基準クエリ (述語付き) に結合する際に問題がありますか? .(ルートではなく) 条件クエリで結合する可能性はありますか?

どんな助けでも大歓迎です。注: ドメイン クラスには、embeddedId で注釈が付けられた複合 PK が既にあります。

4

1 に答える 1

0

CriteriaQuery結合は、エンティティ間の明示的に定義された関係に対してのみ定義できます。たとえば、ClassAそれ自体に参加するための例では、次のような明示的なフィールドが必要です。

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

(ルートではなく) 条件クエリに参加する可能性はありますか?

簡単な答えはノーです。あなたがほのめかしたように、 aが複数のルートCriteriaQueryを定義することは可能ですが、これらは最終的にデカルト積 ( s) になり、非常に非効率になる可能性があります。CROSS JOIN

于 2016-11-08T14:22:19.247 に答える