Я использую EclipseLink, и мне нужно провести аудит в оракуле, чтобы я мог проводить аудит с использованием чистого JDBC с помощью V$session
, и я могу проверять имя приложения в oracle таким образом, но здесь, в EclipseLink JPA, я не могу установить имя приложения, которое должно быть проверено, способ, которым я пытался, - динамически установить параметр сеанса, который я хочу использовать, с помощью SessionCustomizer
, но он не выполняет то, что должен делать ... Ошибка не отображается, но не проверяет имя в оракула ... у меня есть время борется с этим и без результата, код я использую:Аудит для Oracle с EclipseLink JPA
класс настройщик является:
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
}
}
Используя один из комментируемых линий выше, которые должны работать, не работает ...
попытался также изменения этих линий в таких:
DatabaseLogin login= (DatabaseLogin) s.getDatasourceLogin();
login.setProperty("v$session.program","Clients");
Не работает слишком.
Я читал ссылку затмение http://wiki.eclipse.org/Configuring_a_Session_(ELUG), и это делается таким образом ...
Метод редактирования:
public void edit(Employee employee) {
emProperties.put(PersistenceUnitProperties.SESSION_CUSTOMIZER, "com.util.ProgramCustomizer");
factory = Persistence.createEntityManagerFactory("EJBLocalPU", emProperties);
em = factory.createEntityManager();
em.merge(employee);
}
Он выполняет слияние очень хорошо, но не аудит приложения имя, которое я хочу в базу данных.
У вас есть идея, как решить эту проблему.