2012-08-01 66 views
0

有沒有辦法以並行方式獲得屬於不同類型的一組對象?我正在爲一個PurchaseOrder對象,一個Invoice對象和我擁有該Id的Product對象進行Read。而不是做一個連續的session.get(),有沒有辦法使用Hibernate將它們加載在一起。如果每個get()需要30ms,我可以節省60ms,如果我可以並行而不是按順序執行它們。我只做了一個閱讀,並沒有在這個交易中做任何更新。像getMulti()會很棒!同時加載不同實體類型的對象

+0

什麼的含量之間的關係你的問題和標題? – 2012-08-01 07:06:11

+0

@JBNizet對不起,更正了。是一個錯字。 – user1076371 2012-08-01 09:35:08

回答

0

最後,Hibernate必須使用SQL查詢從數據庫加載數據。而AFAIK,不可能一次加載三個不相關表的行。所以這不可能使用Hibernate API。

如果實體通過關聯連接,您可以使用HQL查詢一次加載所有內容。例如,如果了一個採購訂單有一個產品,並與發票一多對一一個多對一的關聯,你可以用它發票加載的PurchaseOrder並使用下面的HQL查詢其產品:

select o from PurchaseOrder o 
left join fetch o.invoice i 
left join fetch o.product p 
where o.id = :orderId 
相關問題