Я использую EclipseLink, и мне нужно провести аудит в oracle, чтобы я мог проводить аудит, используя чистый JDBC с V$session
, и таким образом я могу проверять имя приложения в oracle, но здесь, в EclipseLink JPA, я не могу установить имя приложения в быть проверенным, способ, которым я пытался, состоит в динамической установке параметра сеанса, который я хочу использовать SessionCustomizer
, но он не делает то, что должен делать ... Ошибка не отображается, но не проверяет имя в оракуле ... у меня есть время, чтобы бороться с этим, и нет результата, код, который я использую:
Класс настройщика:
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);
}
Он выполняет слияние очень хорошо, но не проверяет имя приложения, которое я хочу, в базу данных.
У вас есть идеи, как решить эту проблему.