J'avais précédemment utilisé Hibernate 3.2 et OSCP mais je viens de passer à Hibernate 4.3.5 et au pool de connexions Hikari pour connecter mon application Java à ma base de données Oracle. J'ai mis v $ session.program au nom de programme que je veux et l'ajoute à la configuration d'hibernate.
J'ai créé ma propre classe de configuration d'hibernation qui étend la classe Configuration
fournie par 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));
}
}
Le MySessionFactory
est un emballage personnalisé pour la SessionFactory qui fait un peu de magie par réflexion avec le champ persistenceContext du SessionImpl (qui devrait être le problème parce que cela a fonctionné avant la mise à niveau, aussi).
J'appelle
Document configDocument = loadHibernateConfigruationDocument();
MyConfiguration conf = new MyConfiguration();
conf.configure(configDocument);
conf.buildSessionFactory();
Cependant, si je vais à la base de données (alors que l'application est en cours d'exécution) et requête
SELECT MACHINE, PROGRAM, USERNAME, count(*) as COUNT FROM v$session GROUP BY MACHINE, PROGRAM, USERNAME;
Je ne peux pas trouver le programme que je viens de commencer. Des idées de ce que je fais mal?