我正在尝试将批量数据保存到表中 在保存的同时,我面临的问题是
非法尝试将代理与两个打开的会话相关联
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
for (Object obj : ObjectList) {
session.save(obj );
}
transaction.commit();
session.close();
}
我在更新记录时看到了这个问题,但是现在有解决方案了。
答案 0 :(得分:1)
在这里您可以刷新一批插入物并释放内存:
有关更多信息,您可以在batch processing.上查阅休眠文档
int count=0;
for (Object obj : ObjectList) {
session.save(obj );
//20, same as default the JDBC batch size
if ( ++count % 20 == 0 ) {
session.flush();
session.clear();
}
}
transaction.commit();
session.close();