替代推荐的hibernate getSession()。connection()

时间:2013-03-05 07:21:20

标签: hibernate

当使用HibernateDaoSupport类时,我发现了getSession()。connection();已被弃用。

请问另一种方法,而不是这个

2 个答案:

答案 0 :(得分:1)

现在我们必须使用session.doWork() API:

session.doWork(
        new Work() {
            public void execute(Connection connection) throws SQLException 
            { 
                doSomething(connection); 
            }
        }
    );

另请参阅:session.connection() deprecated on Hibernate?

答案 1 :(得分:0)

我找到了以下解决方法来获取Session的连接而没有任何弃用。我很确定Hibernate的人并不打算允许这样做。

private static class WorkAround implements org.hibernate.jdbc.Work {
    private Connection conn = null;

    @Override
    public void execute(Connection conn) throws SQLException {
        this.conn = conn;
    }

    public Connection getConnection() {
        return conn;
    }

}

public static Connection getConnection(Session session) {
    WorkAround wrk = new WorkAround();
    session.doWork(wrk);
    return wrk.getConnection();
}

我想在这里发布这个答案:session.connection() deprecated on Hibernate?,但我发现我不被允许。