2012-02-10 30 views
1

爲什麼JPA需要爲選擇類型查詢打開一個事務/會話,比如加載懶惰屬性?這些不能在事務之外加載嗎?我完全理解爲什麼它需要更新或插入,但似乎是選擇不必要的限制(加上新手懶惰加載很多痛苦)。爲什麼JPA需要事務來加載實體

回答

0

JPA不需要交易,但需要EntityManager(休眠:Session)才能這樣做。這就是爲什麼解決方法可以通過OpenEntityManagerInView(或OpenSessionInView)而不是OpenTransactionInView來完成。

是什麼讓你覺得你需要一個交易?查看here,查看沒有事務的簡單示例代碼。

+0

OpenEntityManagerInView啓動第二個加載懶惰屬性的事務。這完全是一種解決方法,在我看來,這不是處理延遲加載的很好的設計模式。 – Mouscellaneous 2012-02-13 21:25:07

相關問題