卸载JPA引用

时间:2012-08-27 15:52:06

标签: java jpa jpa-2.0 eclipselink

jpa 2.0是否与引用延迟加载注释有某种“相反”?即一个提示jpa的注释,如果带注释的引用是对该对象的唯一剩余引用,则如果内存不足,则目标对象可以进行垃圾回收。

如果访问先前加载的引用,我会完全满足于支付性能损失,导致后续加载,因为它已被换出。我需要这样的行为,因为我的域太大而无法保留在内存中。我一直在寻找这个但是空手而归,让我想知道我是否正在接近这个问题。

1 个答案:

答案 0 :(得分:0)

  

jpa 2.0是否与引用延迟加载注释有某种“相反”?

Lazy相反的是Eager,不幸的是,这可能不是你想要的,因为这些是'获取方法'。

  

即。一个注释,提示jpa如果带注释的引用是对象的唯一剩余引用,则如果内存不足,则目标对象可以进行垃圾回收。

不,没有这样的注释。这种行为听起来像你不想要的东西。这可以在NullPointerExceptionIndexOutOfBoundExceptionLazyInitializationException等中解​​决。如果对象没有引用,则该对象仅适用于垃圾回收。 (这不是g.c.的完整解释,但这是基本规则。)

  

如果访问先前加载的引用,我会完全满足于支付性能损失,导致后续加载,因为它已被换出。我需要这样的行为,因为我的域太大而无法保留在内存中。我一直在寻找这个,但一直空手而归,让我想知道我是否正在接近这个问题。

我认为你是以错误的方式解决问题。我对你的申请一无所知,所以很难说你能做什么。如果不再需要某个对象(按您的方式),那么您需要处理此问题。 JPA不会自动为您执行此操作。