В прошлых проектах, в которых использовались предыдущие версии Grails / Hibernate, я использовал в сервисах funciton:
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 query select * from table
Я не могу получить никаких результатов, пока не закончится вся функция.