Я получаю следующую ошибку при использовании session.clear() в моей пакетной транзакции с спящим режимом.org.hibernate.HibernateException: ошибка при индексировании в Hibernate Search (до завершения транзакции)
org.hibernate.HibernateException: Error while indexing in Hibernate Search (before transaction completion)
Я использую следующий код
try {
for (TimeSheetEntity timeSheet : timeSheets) {
timeSheet.setActive(false);
try {
session.update(timeSheet);
count++;
if (count % 250 == 0 || totalCount == count) {
System.out.println(count);
session.flush();
session.clear();
}
} catch (HibernateException ex) {
logger.error(ArchiveImpl.class.getName(), ExceptionUtils.getStackTrace(ex) + "[" + timeSheet.getId() + "] ");
} catch (Exception ex) {
logger.error(ArchiveImpl.class.getName(), ExceptionUtils.getStackTrace(ex) + "[" + timeSheet.getId() + "] ");
}
}
sessionManager.commit();
} catch (HibernateException ex) {
System.out.println(ex);
logger.error(ArchiveImpl.class.getName(), ExceptionUtils.getStackTrace(ex));
sessionManager.abort();
} finally {
}
Теперь, если удалить session.clear(); все работает так, как предполагается. Любые идеи, почему я не могу использовать ясность в своей пакетной транзакции с помощью поиска в спящем режиме?
Точно ответ, который я искал, отлично работал. –