垃圾收集活动

时间:2012-10-18 11:32:10

标签: java jpa garbage-collection

我们可以在类中获取事件,就像我将要收集垃圾一样吗?

让我解释一下:

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

但是,如果有人忘记关闭实体管理员,那么所有对同一数据库的查询都会产生之前未更新的结果。 :(

我的观点是,无论如何我得到了类似于你将被销毁的事件,在这种情况下,我将以这种方式编写 this.entitymanager.close()的代码每当 entitymanager 对象关闭时,如果用户忘记在下次垃圾收集器收集它时关闭

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

1 个答案:

答案 0 :(得分:3)

也许这会对你有帮助;

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

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