J'utilise EclipseLink et je dois auditer en oracle pour que je puisse auditer en utilisant JDBC pur avec le V$session
et je peux auditer le nom de l'application dans Oracle de cette manière mais ici dans EclipseLink JPA Je ne peux pas définir le nom de l'application à auditer, la façon dont j'ai essayé est en réglant dynamiquement le paramètre de session que je veux utiliser le SessionCustomizer
mais il ne fait pas ce qu'il est supposé faire ... Aucune erreur n'est affichée mais n'audite pas le nom dans l'oracle ... J'ai le temps aux prises avec cela et aucun résultat, le code que je me sers est:Audit pour Oracle avec EclipseLink JPA
la classe Customizer est:
package com.util;
import org.eclipse.persistence.config.SessionCustomizer;
import org.eclipse.persistence.sessions.Session;
public class ProgramCustomizer implements SessionCustomizer {
public void customize(Session s) throws Exception {
//s.getDatasourceLogin().setProperty("v$session.program","Employees"); //tried with this method
//s.getLogin().setProperty("v$session.program","Employees"); //tried with this one as well
}
}
En utilisant l'une des lignes ci-dessus qui sont commentées censés travailler, ne fonctionnait pas ...
a également essayé de modifier ces lignes dans celles-ci:
DatabaseLogin login= (DatabaseLogin) s.getDatasourceLogin();
login.setProperty("v$session.program","Clients");
N'a pas travaillé aussi.
Je lisais le lien éclipse http://wiki.eclipse.org/Configuring_a_Session_(ELUG) et il est fait de cette façon ...
La méthode pour modifier est:
public void edit(Employee employee) {
emProperties.put(PersistenceUnitProperties.SESSION_CUSTOMIZER, "com.util.ProgramCustomizer");
factory = Persistence.createEntityManagerFactory("EJBLocalPU", emProperties);
em = factory.createEntityManager();
em.merge(employee);
}
Il effectue la fusion très bien, mais ne vérifie pas l'application nom que je veux dans la base de données.
Avez-vous une idée de la façon de résoudre ce problème?