連接兩個表我有兩個其相關的表:標準使用一個以上的參數
+-----------+ +----------+
| First | * 1 | Second |
+-----------+ --------- +----------+
| fk_Second | | id |
| version | | ... |
| ... | | y |
| x | +----------+
+-----------+
Hibernate有一個ManyToOne
定義從First
到Second
。 {fk_Second, version}
是First
表的composite-id
(儘管我不認爲它在這種情況下是相關的)。
我想寫標準調用,這在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
?
謝謝,但我已經有了用HQL編寫的,我需要遷移到Criteria。我在我的問題中提到我不需要HQL解決方案。 – mindas