我很困惑如何查詢其中包含子對象的對象列表。如何將簡單的Hibernate連接結果映射到帶有子對象的對象?
我有兩個類Execution和Order。並在執行,我在它的訂單對象爲一比一的關係:
public class Execution {
private long id;
private Order order;
...
在Execution.hbm.xml,我已經配置順序爲多到一個具有獨特=」真正」。
<class name="Execution" table="executions">
<id name="executionId" type="long">
<generator class="native" />
</id>
<many-to-one name="Order" unique="true" fetch="join" class="Order" />
</class>
通常情況下,我們查詢與HibernateDaoSupport的執行對象使用:
List<Execution> executions = getHibernateTemplate().find("from Execution");
通過上述關係,我們怎麼查詢它和我在哪裏可以找到關於持久對象的複雜連接的更多信息?我已經試過:
List<Execution> list = getHibernateTemplate().find("from Execution e left outer join e.order");
但它給一個ClassCastException作爲查詢似乎並不與在執行訂單對象的額外訂單詳細信息返回執行對象。
映射有問題嗎?或者查詢?
非常感謝您的指點!
- 更新
對不起,我是一個菜鳥。顯然第一個查詢的作品。在閱讀了大量有關HQL的文檔後,他們對此並不清楚。任何更好的文檔都會有所幫助。謝謝...
缺少什麼來自OP的查詢是fetch關鍵字:left outer join ** fetch ** e.order。沒有它,左外連接沒有任何用處 –
好點,加上回答,但看起來像在他的情況下只是「從執行「就足夠了。 –
我不清楚他是否想加載子對象。 +1爲您的答案。 –