Java session.clear()是必需的吗?

Java session.clear()是必需的吗?,java,hibernate,Java,Hibernate,我正在使用Hibernate完成所有与数据库相关的任务。 我正在使用HIbernateUTIl类来维护连接,并执行类似的操作 Session session = null; SessionFactory sessionfactory = HibernateUtil.getSessionFactory(); session = sessionfactory.openSession(); 在finally块中的代码末尾 session.close(); 在我的函数完成之后,在函数内部,我将触发一

我正在使用Hibernate完成所有与数据库相关的任务。 我正在使用HIbernateUTIl类来维护连接,并执行类似的操作

Session session = null;
SessionFactory sessionfactory = HibernateUtil.getSessionFactory();
session = sessionfactory.openSession();
在finally块中的代码末尾

session.close();
在我的函数完成之后,在函数内部,我将触发一些查询并在arraylist中获得结果

我的问题是:是在我关闭会话时立即清除初级缓存,还是必须使用

session.clear()

如果主缓存未被清除,它是否会保留对我的对象的引用,这将使它们无法进行垃圾收集,并最终导致内存丢失。。请帮助

否,不需要调用
会话。清除()
。关闭会话也会将其清除

如果您有长时间运行的会话,或者执行批量更新(将大量实体保留在内存中)时,清除会话非常有用,以避免出现内存不足或内存错误。但是,如果只在典型事务期间保持会话打开,则不需要清除