Hibernate 4.3.5 Игнорирует V $ Session.Program Configuration Property
-
26-12-2019 - |
Вопрос
Я ранее использовал Hibernate 3.2 и BoneCP, но я просто обновил в Hibernate 4.3.5 и бассейн соединения Hikari, чтобы подключить мое приложение Java для моей базы данных Oracle.Я устанавливаю v $ session.program на имя программы, которое я хочу и добавить его в конфигурацию Hibernate.
Я создал свой собственный класс конфигурации Hibernate, который расширяет класс Configuration
, предоставленный Hibernate.
public class MyConfiguration extends Configuration {
private static final long serialVersionUID = 1L;
public MyConfiguration() { }
public MyConfiguration(SettingsFactory settingsFactory) {
super(settingsFactory);
}
@Override
public SessionFactory buildSessionFactory() throws HibernateException {
ServiceRegistry registry = new StandardServiceRegistryBuilder()
.applySettings(getProperties()).build();
return new MySessionFactory(super.buildSessionFactory(registry));
}
}
.
Генеракодицетагкод представляет собой пользовательскую обертку для Sessionactactory, которая делает некоторую магию через отражение с помощью поля PersiSceCtext SEASICIMPL (это должно быть проблемой, хотя, потому что он тоже работал до модернизации).
Тогда я звоню
Document configDocument = loadHibernateConfigruationDocument();
MyConfiguration conf = new MyConfiguration();
conf.configure(configDocument);
conf.buildSessionFactory();
.
Однако, если я перехожу в базу данных (пока запущено приложение) и запрос
SELECT MACHINE, PROGRAM, USERNAME, count(*) as COUNT FROM v$session GROUP BY MACHINE, PROGRAM, USERNAME;
.
Я не могу найти программу, которую я только начал.Любые идеи, что я делаю не так?
Решение
Я нашел решение.Я только что добавил hibernate.hikari.dataSource.v$session.program
And hibernate.hikari.dataSource.v$session.username
к моей конфигурации, и все работает нормально.