2013-01-15 46 views
0

只是好奇。如果實體本身的實體監聽器方法和生命週期回調重複,該怎麼辦?

鋸從WebSphere中的規則:如果有多個回調方法爲一個實體生命週期事件定義 重複的生命週期回調方法 ,這些方法調用的順序如下:在定義 生命週期回調方法實體監聽器:實體監聽器類上爲實體類定義的生命週期回調方法的調用順序與EntityListeners批註或XML描述符中實體監聽器類的規範相同。 監聽器超類:實體監聽器的超類中定義的回調方法在子節點之前被調用。 實體生命週期方法:WebSphere®eXtreme Scale不支持實體繼承,所以實體生命週期方法只能在實體類中定義。

但它只提到場景多個回調來自不同的聽衆。

如果在實體類中定義了一個回調(如@PostLoad),而來自該偵聽器的另一個(也是@PostLoad),該怎麼辦?

哪個回調方法會首先被調用?序列是指定的還是與提供者相關的?

非常感謝!

回答

1

首先調用監聽器中的方法,然後調用實體中的回調方法。更具體而言,順序是:

  1. 缺省偵聽器(在XML描述符中定義的)
  2. 方法在聽衆,從超類在它們在@EntityListeners註釋定義的順序開始。
  3. 實體層次結構中的回調方法,從最上層的超類開始。

呼叫順序是在JPA 2.0規範,3.5實體監聽和回調方法細節(並且澄清的例子)來指定。

+0

感謝您的回答! –

相關問題