web-dev-qa-db-ja.com

hibernateセッションからjdbc接続を取得する方法は?

Hibernateセッションからjdbc接続を取得したいhibernateセッション内にメソッドがあります。つまり、session.connection();しかし、それは廃止されました。私はこれがまだ機能していることを知っていますが、非推奨の方法を使用したくありません。 http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/Session.html 接続方法apiは、この目的のためにorg.hibernate.jdbc.Workを使用しているが、そのための例が見つかりませんか?

40
M Sach

使用方法は次のとおりです。

session.doWork(new Work() {
    @Override
    public void execute(Connection connection) throws SQLException {
        //connection, finally!
    }
});
84

これを試して:

((SessionImpl)getSession()).connection()
23

同様の問題があり、ConnectionProviderクラスを使用して接続を取得しました。私の解決策を見る:

Session session = entityManager.unwrap(Session.class);
SessionFactoryImplementor sessionFactoryImplementation = (SessionFactoryImplementor) session.getSessionFactory();
ConnectionProvider connectionProvider = sessionFactoryImplementation.getConnectionProvider();
try {
       connection = connectionProvider.getConnection();
       ...
}
11
OldFabiotta