2009-07-27 12 views
5

Chcę mieć funkcję w jednej z moich adnotowanych klas JPA, która jest wywoływana za każdym razem, gdy EntityManager zapisuje je w bazie danych (aka detektor zdarzeń). Czy to jest możliwe? Najlepiej chciałbym rozróżnić, czy właśnie zostanie zapisany, czy właśnie został zapisany.Jak wyzwalać akcje w moich klasach odwzorowanych w JPA, gdy są one zapisywane w bazie danych?

Aby osiągnąć to, czego chcę, tym razem prawdopodobnie mógłbym pracować metodą settera, ale nie byłoby to takie samo.

Odpowiedz

7

Oczywiście, sprawdź these examples. Masz:

  • @PrePersist;
  • @PreUpdate;
  • @PreRemove.
  • @PostPersist;
  • @PostUpdate; i
  • @PostRemove.

(dodany przez Hanno) - Używając tej odpowiedzi na początek, znalazłem także this other nice example tutorial.

+0

Witam, nie mogę otworzyć pierwszego linka, drugie linki wydają się nie być poprawne. czy możesz podać mi przykładowy kod? – Scarlett

1

Może to być istotne teraz, ponieważ ten wątek jest kilka lat, ale myślę, że poradnik Hanno odnosi się na tej drugiej (pracy) link:

http://www.cereslogic.com/pages/2008/03/31/pizza-shop-iii-jpa-event-listeners/

i nie ma również inny pomocny poradnik na ten temat tutaj:

http://www.andygibson.net/blog/article/auditing-entities-with-jpa-events/

Myślałem, że przyczyniają się coś do ludzi, którzy mogą znaleźć ten wątek w przyszłości.

Saludos desde Boliwia

+0

+1 w celu uzyskania przydatnych informacji. (Być może bardziej odpowiednie było odwołanie się do drugiej odpowiedzi, niż do nowej odpowiedzi, ponieważ tak naprawdę nie odpowiada na pytanie.) – jogojapan

Powiązane problemy