Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate上不推荐使用无状态SessionConnection()?_Java_Hibernate_Orm_Database Connection_Stateless Session - Fatal编程技术网

Java Hibernate上不推荐使用无状态SessionConnection()?

Java Hibernate上不推荐使用无状态SessionConnection()?,java,hibernate,orm,database-connection,stateless-session,Java,Hibernate,Orm,Database Connection,Stateless Session,我正在清理一些警告,我发现了一些使用无状态会话的连接方法的代码,其弃用文档说,当在会话上弃用相同的方法时,他们错过了它 现在,答案指向会话上的doWork方法,但无状态会话上不存在这样的方法。那么,我们应该如何解决这个问题呢?该方法的目标是: 返回与此实例关联的当前JDBC连接 无状态会话从继承此方法,该方法未被弃用,因此使用它是安全的。即使要将其从无状态会话中删除,您仍然可以从SessionImplementor中使用此方法。您可以执行以下操作: StatelessSession st

我正在清理一些警告,我发现了一些使用无状态会话的连接方法的代码,其弃用文档说,当在会话上弃用相同的方法时,他们错过了它

现在,答案指向会话上的doWork方法,但无状态会话上不存在这样的方法。那么,我们应该如何解决这个问题呢?

该方法的目标是:

返回与此实例关联的当前JDBC连接


无状态会话从继承此方法,该方法未被弃用,因此使用它是安全的。即使要将其从无状态会话中删除,您仍然可以从SessionImplementor中使用此方法。

您可以执行以下操作:

    StatelessSession statelessSession = HibernateUtil.getSessionFactory().openStatelessSession();
    try {
        ((StatelessSessionImpl) statelessSession).getJdbcConnectionAccess().obtainConnection().setTransactionIsolation(TRANSACTION_REPEATABLE_READ);
    } catch (SQLException e) {
        e.printStackTrace();
    }

事实并非如此。无状态会话未继承SessionImplementor。强制转换可能会起作用,因为实现无状态会话的类碰巧也实现了SessionImplementor,但是依赖这种强制转换是非常脆弱的——比保留不推荐的方法调用更脆弱。您也应该在Hibernate邮件列表中提出这个问题。一个选项是访问当前TransactionImplementator,但目前还不支持。