2015-07-13 66 views
0

jpa實體回調方法如何工作? 是否只在執行單個jpa操作(例如em.merge()em.create())時通知?或者如果我使用em.createQuery().executeUpdate(),他們會收到通知? (也爲namedQueries)在批量查詢後通知實體回調方法jpa

我可以使用它們而不是實際的數據庫觸發器嗎?

+0

如果我的回答是確定的,您可以將其標記爲已接受。這將顯示你的問題不再需要任何關注。 –

回答

2

我沒有找到一個直接的聲明,但從下面的報價(JPA 2.1規範, Chapter 4.10 Bulk Update and Delete Operations),我明白,在BULK更新或刪除,偵聽器不會被調用,因爲持久性上下文不會看到改變的實體:

[在批量更新或批量刪除該持久性上下文不與 批量更新的結果同步或刪除。

所以答案是:只有在單個JPA操作中才能更改聽衆。

監聽器與數據庫觸發器不同:JPA監聽器的一個約束是您不應該更改其中的關係或其他實體(儘管某些JPA提供程序可能會支持此功能)。