0

我们可以在像我要被垃圾收集时那样的课程中获得事件吗?

让我解释一下事情:

我正在使用JPA API来获取数据库对象。所以场景是我们必须打开EntityManager调用各自的东西在离开之前关闭它。

但是,如果无意中有人忘记关闭实体管理器,那么对同一数据库的所有查询都会给出以前未更新的结果。:(

我的观点是无论如何我都会遇到类似你将被破坏的事件,在这种情况下,我将编写this.entitymanager.close()的代码,这样每次实体管理器对象在用户忘记时自行关闭时下次垃圾收集器来收集它时关闭

我知道析构函数是不可能的,但是处理这个的最好方法是什么?

4

1 回答 1

3

也许这会对您有所帮助;

@Override
protected void finalize() {
    try {
        close();        // close EntityManager connection
    } finally {
        super.finalize();
    }
}

在为垃圾收集计划对象时调用 Finalize。

于 2012-10-18T11:36:25.117 回答