Подтвердить что ты не робот

Как получить соединение jdbc из сеанса спящего режима?

Я хочу получить соединение 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 для этой цели, но я не нашел для этого примера?

4b9b3361

Ответ 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();
       ...
}