在过去使用以前版本的 Grails/Hibernate 的项目中,我在服务功能中使用过:
private void cleanGorm() {
def session = sessionFactory.currentSession
session.flush()
session.clear()
}
例如,在批量更新等长时间任务中,我使用了它,例如:
bigListToIterate.each {
if (it.id > 0 && it.id % 50 == 0) {
cleanGorm()
}
//CRUD action
}
但是,这不适用于 Grails 4.0.1;虽然没有抛出异常,但更改仍然没有反映在数据库中。
我怎样才能完成它?
我在用着:
compile "org.grails.plugins:hibernate5"
compile "org.hibernate:hibernate-core:5.4.0.Final"
mysql版本:
SELECT version();
'5.7.21'
如果我检查数据库,我可以看到表中的行数正在增加并且表的数据长度正在增加,但是当我运行 MySQL 查询时,select * from table
直到整个函数结束,我才能得到任何结果。