我在一个大循环中检索一个 SongDiff Hibernate 实体,处理它,然后获取下一个。
所以我一次只使用一个SongDiff实体,所以我的问题是 Hibernate 会释放这样的资源,比如循环,或者它可以挂在它上面,我是否需要session.flush()偶尔调用或者这没有什么区别?
我只是从 Hibernate 中检索数据,我没有修改任何数据
我问是因为在代码的这个区域中有OutOfMemory错误的代码,我想知道这是否可能是问题所在。
try
{
session = com.jthink.songlayer.hibernate.HibernateUtil.getSession();
for(Integer recNo:recNos)
{
count++;
//Get Metadata changes
SongDiff songDiff = SongChangesCache.getSongDiffFromDatabase(session, recNo);
MetadataAllChanges mas = (MetadataAllChanges) SerializationHelper.deserialize(songDiff.getDiff());
sr.writeDatatoXlsFile(recNo, mas);
}
}
finally
{
HibernateUtil.closeSession(session);
}
30秒到达战场
相关分类