2009-07-27 5 views
5

Quiero tener una función en una de mis clases anotadas JPA que se llama cada vez que EntityManager las guarda en la base de datos (también conocido como detector de eventos). ¿Es eso posible? Preferiblemente, me gustaría distinguir si está a punto de ser salvado o si simplemente se ha guardado.¿Cómo puedo activar acciones en mis clases mapeadas JPA siempre que se guarden en la base de datos?

Para lograr lo que quiero, esta vez probablemente podría trabajar con un método setter, pero no sería lo mismo.

Respuesta

7

Seguro, mira these examples. Usted tiene:

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

(añadido por Hanno) - El uso de esta respuesta para empezar, yo también encontró this other nice example tutorial.

+0

Hola, no puedo abrir el primer enlace, el segundo enlace parece no ser el correcto. ¿Me puede dar un código de ejemplo? – Scarlett

1

Esto puede ser irrelevante ahora, ya que este hilo es un par de años, pero creo que el tutorial Hanno se refiere es en este otro enlace (de trabajo):

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

Y hay también otro tutorial útil sobre este tema aquí:

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

pensé que aportar algo a las personas que pueden encontrar este hilo en el futuro.

Saludos desde Bolivia

+0

+1 para obtener información útil. (Puede haber sido más apropiado como un comentario a la otra respuesta, en lugar de una respuesta nueva, ya que realmente no responde la pregunta). – jogojapan

Cuestiones relacionadas