繁体   English   中英

为什么Hibernate没有将会话设置为Auto Closeable?

[英]Why Hibernate didn't make session as Auto Closeable?

为什么Hibernate没有将会话设置为自动关闭?会话的设计是做什么的。

我们应该编写自己的包装类来执行此操作,以便可以使用Java 7的ARM功能吗?

Hibernate与Java 6兼容。由于AutoCloseable是在Java 7中引入的,它只能由需要Java 7的软件使用。需要Java 7的Hibernate版本可能包含实现AutoCloseable Session

这已在hibernate版本5中修复。如果您可以升级到版本5,请使用此版本。 支持的Jira票证

https://hibernate.atlassian.net/browse/HHH-8898

对于无法升级的项目,我们可以实现自己的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())) {

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM