2008-12-03 34 views
4

我知道,JSR-000220企業JavaBeans 3.0最終版(持久)規範規定:你能從EntityListeners中訪問EntityManagers嗎?

「一般來說,便攜式應用不應以EntityManager的或查詢操作, 訪問其他實體的情況下,或修改在關係生命週期回調方法「。

這看起來極其嚴格。我們有一種情況,我們想從EntityListener中訪問EntityManager。

在Jboss/Glassfish或任何其他應用程序服務器上使用EntityManager時,是否有人遇到過任何不利影響/坑?

回答

2

事實上,你是對的。 JPA規範說明了這一點,在這種情況下,它建議EJB監聽器(或非Java EE環境中的Spring AOP)。

我不知道聽衆的聲音。但是,只能將橫切關注點放在日誌,身份驗證和路由中。例如,Hibernate參考文檔使用偵聽器來審計所有對象修改的日誌。一旦EJB偵聽器可以使用實體管理器,就可以由EJB偵聽器(或非Java EE環境中的Spring AOP)完成。 Java EE規範允許它。因此,EJB偵聽器共享與其目標EJB使用的ENC相同的ENC,並且這樣也共享相同的持久化上下文(實體管理器)。

如果您願意,請參閱我的個人資料。我有許多ORM相關的問題。

關於,

相關問題