0
我正在學習Hibernate,我想知道HQL查詢中JOIN子句的用法。我可能是錯的,但在我看來,你總是可以不做。Hibernate HQL:JOIN真的有必要嗎?
假設我有一個ChildClass實體,它與ParentClass具有映射的@ManyToOne關係。
現在我可以建立一個HQL這樣的查詢:
session.createQuery("FROM ChildClass ch WHERE ch.parentClass.id=1L")
正如你可以看到我可以過濾由父類的id字段的結果,通過子類訪問它:ch.parentClass.id
如果我想要做相同的SQL,我需要執行聯接,而查詢是以下幾點:
SELECT * FROM ChildTable ch
JOIN ParentTable p ON (ch.parent_id = p.id)
WHERE p.id=1;
如果我得到這個直,在HQL我不需要包括e查詢中的任何JOIN,因爲@ManyToOne映射關係隱式地加入了兩個實體。那麼爲什麼我會在HQL查詢中使用JOIN?有什麼特殊的情況需要JOIN?