2010-05-24 2 views
1

Привет всем Я использую JPA с EclipseLink и оракулом как DB, и мне нужно установить свойство v $ session jdbc4 позволяет устанавливать идентификационное имя для приложения для целей аудита, но мне не повезло настроить его .... я пытался через entitiyManager, следуя примеру на этой странице: http://wiki.eclipse.org/Configuring_a_EclipseLink_JPA_Application_(ELUG) он не показывает никаких ошибок, но не устанавливает имя приложения вообще ... когда я вижу аудит в oracle не проверяется с именем i, установленным кодом «Клиенты», но с OS_program_name = Тонким клиентом JDBC это означает, что свойство в коде не установлено должным образом, и я понятия не имею, где проблема, код, который я использую, является следующим:Нужна помощь в настройке имени приложения с JPA (EclipseLink)

emProperties.put("v$session.program","Customers"); 
    factory=Persistence.createEntityManagerFactory("clients",emProperties); 
    em=factory.createEntityManager(emProperties);   
    em.merge(clients); 

ли кто-нибудь знает, как сделать это или любую идею ....

thanks.-

ответ

0

v$session.program является соединение свойства JDBC, но Persistence.createEntityManagerFactory получает свойства инерционности единицы. Нет прямого способа передать произвольное свойство JDBC в диспетчер объектов.

Однако в EclipseLink вы можете использовать SessionCustomizer:

public class ProgramCustomizer extends SessionCustomizer { 
    @Override 
    public void customize(Session s) throws Exception { 
     s.getDatasourceLogin().setProperty("v$session.program", "Customers"); 
     super.customize(s); 
    } 
} 

-

emProperties.put(PersistenceUnitProperties.SESSION_CUSTOMIZER, "ProgramCustomizer"); 
Смежные вопросы