Je veux obtenir une connexion jdbc à partir de la session de mise en veille prolongée. Il existe une méthode à l'intérieur de la session de mise en veille prolongée, à savoir session.connection (); mais il est obsolète. je sais que cela fonctionne toujours mais je ne veux pas utiliser la méthode obsolète car je suis sûr qu'ils doivent avoir fourni une alternative pour cela? À http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Session.html méthode de connexion api dit utiliser org.hibernate.jdbc.Work à cet effet mais je vous ne trouvez pas d'exemple pour cela?
Voici comment vous pouvez l'utiliser:
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
//connection, finally!
}
});
Essaye ça:
((SessionImpl)getSession()).connection()
J'ai eu un problème similaire et j'ai utilisé la classe ConnectionProvider
pour obtenir la connexion. Voir ma solution:
Session session = entityManager.unwrap(Session.class);
SessionFactoryImplementor sessionFactoryImplementation = (SessionFactoryImplementor) session.getSessionFactory();
ConnectionProvider connectionProvider = sessionFactoryImplementation.getConnectionProvider();
try {
connection = connectionProvider.getConnection();
...
}