猿问

Hibernate ReturningWork<Long> 接口的目的是什么?

我正在开发一个 JAVA + Hibernate 项目,但目前,我在我的代码(即ReturningWork<Long>)中看到了一个接口,其中有一个名为execute(java.sql.Connection).

我的问题是这个ReturningWork接口有什么用?


繁星coding
浏览 180回答 2
2回答

宝慕林4294392

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

相关分类

Java
我要回答