1
爲什麼JPA需要爲選擇類型查詢打開一個事務/會話,比如加載懶惰屬性?這些不能在事務之外加載嗎?我完全理解爲什麼它需要更新或插入,但似乎是選擇不必要的限制(加上新手懶惰加載很多痛苦)。爲什麼JPA需要事務來加載實體
爲什麼JPA需要爲選擇類型查詢打開一個事務/會話,比如加載懶惰屬性?這些不能在事務之外加載嗎?我完全理解爲什麼它需要更新或插入,但似乎是選擇不必要的限制(加上新手懶惰加載很多痛苦)。爲什麼JPA需要事務來加載實體
JPA不需要交易,但需要EntityManager
(休眠:Session
)才能這樣做。這就是爲什麼解決方法可以通過OpenEntityManagerInView
(或OpenSessionInView
)而不是OpenTransactionInView
來完成。
是什麼讓你覺得你需要一個交易?查看here,查看沒有事務的簡單示例代碼。
OpenEntityManagerInView啓動第二個加載懶惰屬性的事務。這完全是一種解決方法,在我看來,這不是處理延遲加載的很好的設計模式。 – Mouscellaneous 2012-02-13 21:25:07