Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EclipseLink » Auditar entidad(Cambia en dato en la base de datos pero no en la entidad)
icon5.gif  Auditar entidad [message #807147] Sun, 26 February 2012 02:44 Go to next message
sperll java is currently offline sperll javaFriend
Messages: 1
Registered: February 2012
Junior Member
Hola. No soy muy experto en el tema y no se como realizar lo siguiente. De antemano pido disculpas si no utilizo los terminos adecuados para describir el problema.

En varias entidades tengo fecha y usuario que realizo el ultimo cambio a los datos. para que funcione genericamente cree una clase que se encargue de actualizar estos campos y la llamo en las entidades que necesito de la siguiente forma:

@EntityListeners(AuditListener.class)

La clase de auditoria es la siguiente:

public class AuditListener extends DescriptorEventAdapter implements SessionCustomizer, DescriptorCustomizer {
@SuppressWarnings("rawtypes")
public static ThreadLocal currentUser = new ThreadLocal();

/** This will audit a specific class. */
public void customize(ClassDescriptor descriptor) {
descriptor.getEventManager().addListener(this);
}

/** This will audit all classes. */
public void customize(Session session) {
for (ClassDescriptor descriptor : session.getDescriptors().values()) {
customize(descriptor);
}
}

public void aboutToUpdate(DescriptorEvent event) {
for (String table : (List<String>)event.getDescriptor().getTableNames()) {
event.getRecord().put(table + ".actualizadopor", (String) "oscar");
//event.getRecord().put(table + ".fechaactualizacion", Calendar.getInstance());
event.updateAttributeWithObject("fechaactualizacion", new Date());

System.out.println("table: " + table );

System.out.println("updtae" + (String)AuditListener.currentUser.get() );
}
}


}

esta actualiza la informacion sin problema en la base de datos, pero en la entidad no cambia la información. alguien sabe como puedo refrescar el dato en la entidad?

Gracias.
Re: Auditar entidad [message #808327 is a reply to message #807147] Mon, 27 February 2012 17:01 Go to previous message
Chris Delahunt is currently offline Chris DelahuntFriend
Messages: 1389
Registered: July 2009
Senior Member
Sorry I don't speak spanish, so my take on your problem is a result of google translate.

The updateAttributeWithObject call from aboutToUpdate should operate on the managed entity, so you should see the change afterward assuming you are looking at the managed entity and not something you have merged into the EntityManager. These changes should be merged into the cache, so subsequent queries that return the affected entity should show the changes as well.

Can you describe the code you are using where you do not see the changes, and how the entity is obtained?

Best Regards,
Chris
Previous Topic:No persistence provider
Next Topic:NPE in remote session
Goto Forum:
  


Current Time: Thu Dec 12 11:45:52 GMT 2024

Powered by FUDForum. Page generated in 0.04123 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top