Java Hibernate上不推荐使用无状态SessionConnection()?
我正在清理一些警告,我发现了一些使用无状态会话的连接方法的代码,其弃用文档说,当在会话上弃用相同的方法时,他们错过了它 现在,答案指向会话上的doWork方法,但无状态会话上不存在这样的方法。那么,我们应该如何解决这个问题呢?该方法的目标是: 返回与此实例关联的当前JDBC连接Java Hibernate上不推荐使用无状态SessionConnection()?,java,hibernate,orm,database-connection,stateless-session,Java,Hibernate,Orm,Database Connection,Stateless Session,我正在清理一些警告,我发现了一些使用无状态会话的连接方法的代码,其弃用文档说,当在会话上弃用相同的方法时,他们错过了它 现在,答案指向会话上的doWork方法,但无状态会话上不存在这样的方法。那么,我们应该如何解决这个问题呢?该方法的目标是: 返回与此实例关联的当前JDBC连接 无状态会话从继承此方法,该方法未被弃用,因此使用它是安全的。即使要将其从无状态会话中删除,您仍然可以从SessionImplementor中使用此方法。您可以执行以下操作: StatelessSession st
无状态会话从继承此方法,该方法未被弃用,因此使用它是安全的。即使要将其从无状态会话中删除,您仍然可以从SessionImplementor中使用此方法。您可以执行以下操作:
StatelessSession statelessSession = HibernateUtil.getSessionFactory().openStatelessSession();
try {
((StatelessSessionImpl) statelessSession).getJdbcConnectionAccess().obtainConnection().setTransactionIsolation(TRANSACTION_REPEATABLE_READ);
} catch (SQLException e) {
e.printStackTrace();
}
事实并非如此。无状态会话未继承SessionImplementor。强制转换可能会起作用,因为实现无状态会话的类碰巧也实现了SessionImplementor,但是依赖这种强制转换是非常脆弱的——比保留不推荐的方法调用更脆弱。您也应该在Hibernate邮件列表中提出这个问题。一个选项是访问当前TransactionImplementator,但目前还不支持。