2 回答
TA贡献2021条经验 获得超8个赞
休眠会话休眠 Session doReturningWork
HibernateSession doReturningWork方法具有以下签名:
<T> T doReturningWork(ReturningWork<T> work) throws HibernateException;
而ReturningWork界面如下所示:
public interface ReturningWork<T> {
public T execute(Connection connection) throws SQLException;
}
因此,与doWork方法不同,doReturningWork允许我们将对象返回给方法调用者。
例如,我们可以使用该doReturningWork方法来获取当前的事务隔离级别:
Session session = entityManager.unwrap(Session.class);
int isolationLevel = session.doReturningWork(
connection -> connection.getTransactionIsolation()
);
assertEquals(
Connection.TRANSACTION_READ_COMMITTED,
isolationLevel
);
何时使用doWork和doReturningWork?
通常,您可以使用 JPA 或 Hibernate 特定的 API 来执行 SQL 语句或调用数据库过程或函数。
但是,如果要访问底层 JDBCConnection方法并通过 JDBC API 执行任何可能的操作,则需要使用doWork和doReturningWorkHibernateSession方法。
添加回答
举报