如何检查hibernate会话连接是否在Java中处于只读模式

时间:2012-01-02 08:22:02

标签: java hibernate

如何检查hibernate会话包含连接是否处于只读模式。

目前正在使用

进行检查
Session.connection().isReadOnly() 

但是连接已被弃用标记,有没有其他方法可以检查它?

2 个答案:

答案 0 :(得分:1)

您可以在会话对象上使用isDefaultReadOnly()方法。这告诉你,(来自Hibernate Javadoc)

  

默认情况下,加载到此会话中的实体和代理是否为只读?

此外,您也可以使用isReadOnly(object)方法。这将告诉你(再次来自hibernate javadoc)

  

指定的实体或代理是只读的吗?

我希望这两者的组合可以满足你的目的。

答案 1 :(得分:0)

怎么样:

private boolean isReadOnly;

public boolean isReadOnly() {
  this.getSessionFactory().getCurrentSession().doWork(new Work() {

    public void execute(Connection connection) throws SQLException {
      isReadOnly = connection.isReadOnly();
    }
  });
  return isReadOnly;
}