JPA PreUpdate implementado usando DescriptorEventAdapter llamada después de buscar / seleccionar

StackOverflow https://stackoverflow.com/questions/2232424

Pregunta

He implementado un DescriptorEventAdapter de APP (EclipseLink). Se lleva a cabo operaciones de fecha y hora simples. El método PreUpdate está siendo llamado, sin embargo, se está llamando con demasiada frecuencia. Que es llamado y actualiza la marca de tiempo, incluso en buscar / operaciones de selección.

El problema que estoy corriendo en parece ocurrir en un marco diferente de la APP también, http://markmail.org/message/nank44rgp4xi2ita#query:JPA%20preupdate%20being%20called%20after%20find+page:1+ mediados: xssqpg7hm4mesfl5 + estado: resultados .

He intentado:

  • Comprobar el conjunto de cambios en la DescriptorEvent, esto siempre es nulo
  • comprobar el código de la DescriptorEvent, esto es siempre 6

No he podido encontrar ningún otro indicador o atributo que dice "este objeto realmente fue actualizada".

¿Cómo llego PreUpdate actuar sólo cuando un disco realmente se ha actualizado y no meramente seleccionado?

¿Fue útil?

Solución

http://wiki.eclipse.org/Configuring_a_Descriptor_(ELUG)#Table_115 -27

El PreUpdate se llama todo el tiempo, al parecer. aboutToUpdate es el mejor método para llamar a desencadenar una actualización cuando se necesita hacer.

Otros consejos

Aquí está la solución que subí después de leer esta pregunta; También encontré que el conjunto de cambios en la DescriptorEvent siempre parece ser nula.

Yo sin embargo notar que el evento tiene métodos para conseguir el antes y después de objetos:

 Object oldObject = event.getOriginalObject();
 Object newObject = event.getSource();

lo que le permite hacer comparación manual de los campos. El uso de la reflexión que puede escribir un poco de código que podría comparar todos los campos de ninguna clase.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top