悪いタイトルで申し訳ありませんが、私はそれをよりよく表現する方法を本当に知りません:
私は次のテーブル構造を持っています:
Table A --> Table B <-- Table C (proceeds) --> Table D(prcoeeding_status)
-------- -------- ------- -------
aID bID cID dID
... .... created textValue
f_bID .... f_bID
f_dID
つまり、AとCにはBを指す外部キーがあり、CにはDを指す外部キーもあります。
私はこのような述語を持っています(ルートはテーブルAです):
constraintCondition = (TableA.join("Table B key")
.joinList("Table C Key")
.join("Table D Key").get("value from table D"))
.in(someValues);
これは正常に機能し、期待どおりの結果が得られます。次に、別の制約を追加する必要があります。表Cで、日付エントリ(つまり「作成済み」)が開始日と終了日の間にあるエントリのみを選択します。別の述語をこの述語にチェーンするにはどうすればよいですか、またはこの述語を変更して目的の効果を得るにはどうすればよいですか?
編集:
ここでこの質問に対する答えが得られました:JPA 2基準API:メタモデルを使用せずにさまざまな結合テーブルから値を選択する方法は?