В приложении Java EE с Hibernate,
в большом столе я хочу очистить несколько миллионов объектов.
Например
- Я получил несколько объектов, которые я хочу очистить: 2000 объектов вернули более 5000 объектов во вкладке
- а потом я хочу удалить их
На самом деле, пока объект существует, я делаю:
List<Object> objectList = this.getObjectManager()
.getObjectsByCriteria(clientName, objectType, MAX_OBJECTS);
for (final Object object : objectList) {
if (logger.isDebugEnabled()) {
logger.debug("will delete " + object);
}
this.getMManager().removeEntry(object);
counter++;
}
public void removeObject(final Object object) {
final Session session = this.getHibernateUtil().getSession();
session.delete(entry);
session.flush();
}
Я полагаю, что hibernate удаляет все объекты при фиксации транзакции, а не один за другим.
Каково наилучшее решение для удаления, например, 2000 объектов, не имеющих памяти или исключений гибернации?
Как реально удалить по одному с гибернацией?