我的代码中似乎“泄漏”了一些 Hibernate 资源。
伪代码
对于 20,000 多条记录中的每
一条 使用 Criteria 和示例实体查找记录 将
新对象添加到实体上的集合中 将
带有新对象的实体保存到数据库
问题
示例实体的查找在记录 12,764 处失败。如果我在测试用例中只执行那个 find ,它就会被成功检索。如果我将输入文件分成多个文件,每个文件有 10,000 条记录,则所有记录都会被处理。这是我用来查找数据库记录的代码
try {
// begin transaction
ses = Activator.getSession();
ses.beginTransaction();
// find the object
Criteria crit = getSession().createCriteria(getPersistentClass());
Example example = Example.create(exampleInstance);
for (String exclude : excludeProperty) {
example.excludeProperty(exclude);
}
crit.add(example);
foundEntities = crit.list();
for (T curT : foundEntities) {
this.initHibernateEntity((I) curT);
}
// commit transaction
ses.getTransaction().commit();
} catch // all exceptions
finally {
if (ses != null && ses.isOpen()) {
ses.close();
}
}
我将不胜感激有关这可能在哪里的任何建议。