我正在使用从em.unwrap(..)
方法获得的Hibernate Session。我似乎无法找到任何关于是否必须在使用后释放它的信息。事务由bean管理,实体管理器使用@Inject
注入。
boolean transactionSuccess = false;
try {
utx.begin();
final Session session = em.unwrap(Session.class);
transactionSuccess = true;
} finally {
commitOrRollback(transactionSuccess);
}
我假设实体管理器实例由容器管理。由于Session或多或少是底层实现,我必须释放它吗?毕竟是AutoCloseable
。
我找到的唯一相关信息是这个(但它似乎是香草JPA): After using the unwrap method on entitymanager to get the native hibernate session do I have to close both?
答案 0 :(得分:0)
不,您请求了一个底层对象,关闭该对象的责任在于EntityManager。
使用解包的Hibernate时,AutoCloseable会话是合理的。