Java 为什么Hibernate没有';无法使会话自动关闭?
为什么Hibernate没有使会话自动关闭?这与会话的设计有关Java 为什么Hibernate没有';无法使会话自动关闭?,java,hibernate,session,try-catch,Java,Hibernate,Session,Try Catch,为什么Hibernate没有使会话自动关闭?这与会话的设计有关 我们是否应该编写自己的包装器类来实现这一点,这样就可以使用Java 7的ARM特性了?Hibernate与Java 6兼容。由于Java 7中引入了AutoCloseable,因此它只能由需要Java 7的软件使用。需要Java 7的Hibernate版本可能包含会话实现自动关闭这在Hibernate版本5中已经修复。 如果您可以升级到版本5,请使用此。 支持Jira票据 对于无法升级的项目,我们可以实现自己的CloseableS
我们是否应该编写自己的包装器类来实现这一点,这样就可以使用Java 7的ARM特性了?Hibernate与Java 6兼容。由于Java 7中引入了
AutoCloseable
,因此它只能由需要Java 7的软件使用。需要Java 7的Hibernate版本可能包含会话
实现自动关闭
这在Hibernate版本5中已经修复。
如果您可以升级到版本5,请使用此。
支持Jira票据
对于无法升级的项目,我们可以实现自己的CloseableSession接口
public class CloseableSession implements AutoCloseable {
private final Session session;
public CloseableSession(Session session) {
this.session = session;
}
public Session getSession() {
return session;
}
@Override
public void close() {
session.close();
}
}
用法
会话工厂每次都为您生成会话对象。会话可以是自动刷新的,您只需以某种方式对其进行配置。
try (CloseableSession session = new CloseableSession(
sessionFactory.openSession())) {
}