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方法。
添加回答
舉報