関連する2つのテーブルがあります。
+-----------+ +----------+
| First | * 1 | Second |
+-----------+ --------- +----------+
| fk_Second | | id |
| version | | ... |
| ... | | y |
| x | +----------+
+-----------+
HibernateにはからまでのManyToOne
定義があります。これは表の1つです(ただし、この場合は関係ないと思います)。First
Second
{fk_Second, version}
composite-id
First
私はCriteria呼び出しを書き込もうとしています。これは、SQLでは次のようになります。
SELECT * FROM First WHERE
First.fk_Second = Second.id AND
First.x = Second.y
最後のビット(余分な結合条件)を生成する際に問題が発生しています。
Criteria c = session.createCriteria(First.class);
.createCriteria("second", "join_between_first_and_second")
.add(Restrictions.eqProperty("y", "x") // <- fails: "x" is not found
この状況ではHQLクエリを使用できません。これを別の方法で書く方法はありますか?これはサブクエリ/を避けて書くことができますDetachedCriteria
か?