Я хочу получить соединение jdbc из сеанса hibernate. Существует метод внутри сеанса hibernate i.e session.connection(); но он устарел. Я знаю, что это работает еще, но я не хочу использовать устаревший метод, так как я уверен, что они должны предоставить альтернативу для этого? В http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Session.html метод подключения api говорит с использованием org.hibernate.jdbc.Work для этой цели, но я не нашел для этого примера?
Как получить соединение jdbc из сеанса спящего режима?
Ответ 1
Вот как вы можете его использовать:
session.doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
//connection, finally!
}
});
Ответ 2
Попробуйте следующее:
((SessionImpl)getSession()).connection()
Ответ 3
У меня была аналогичная проблема, и я использовал класс ConnectionProvider
для соединения. См. Мое решение:
Session session = entityManager.unwrap(Session.class);
SessionFactoryImplementor sessionFactoryImplementation = (SessionFactoryImplementor) session.getSessionFactory();
ConnectionProvider connectionProvider = sessionFactoryImplementation.getConnectionProvider();
try {
connection = connectionProvider.getConnection();
...
}