Java hibernate何时发布实体列表?

Java hibernate何时发布实体列表?,java,hibernate,Java,Hibernate,假设创建了一个选择非空值列表的。然后调用criteria.list().get(0),并从某个函数返回。很明显,这个元素存在于进一步的调用链中,但是其他列表元素呢?他们什么时候被释放?当hibernate会话结束或?假设您使用的是会话而不是无状态会话,一级缓存将在以下几种情况下被清除: 当会话关闭时 在活动的会话实例上调用会话.clear()时 您还可以在打开的会话上单独清除受管实体的实例,该会话通过将实体实例传递给会话来管理给定实体。退出(对象对象)假设您使用的是会话,而不是无状态会话,一

假设创建了一个选择非空值列表的。然后调用
criteria.list().get(0)
,并从某个函数返回。很明显,这个元素存在于进一步的调用链中,但是其他列表元素呢?他们什么时候被释放?当hibernate会话结束或?

假设您使用的是
会话
而不是
无状态会话
,一级缓存将在以下几种情况下被清除:

  • 当会话关闭时
  • 在活动的
    会话
    实例上调用
    会话.clear()

您还可以在打开的
会话
上单独清除受管实体的实例,该会话通过将实体实例传递给
会话来管理给定实体。退出(对象对象)
假设您使用的是
会话
,而不是
无状态会话
,一级缓存将在以下几种情况下清除:

  • 当会话关闭时
  • 在活动的
    会话
    实例上调用
    会话.clear()

您还可以在打开的
会话
上单独清除受管实体的实例,该会话通过将实体实例传递给
会话来管理给定实体。逐出(对象对象)

为什么不选择最多一条记录?当事务结束且实体分离时,应将它们从内存中释放出来。您是否使用长时间运行的会话或任何内存缓存?
为什么不选择最多一条记录
您完全正确,但问题不是“最佳做法”,而是“它是如何工作的”。)它不是长时间运行的会话,也没有使用hibernate缓存(它们被禁用)。为什么不选择最多一条记录?当事务结束且实体分离时,应将它们从内存中释放出来。您是否使用长时间运行的会话或任何内存缓存?
为什么不选择最多一条记录
您完全正确,但问题不是“最佳做法”,而是“它是如何工作的”。)它不是长时间运行的会话,也没有使用休眠缓存(它们被禁用)。