Рассмотрим два нижеприведенных способа удаления набора сотрудников с именем «Джон».
List<Employee> list = new ArrayList<Employee>();
String query= " from Employee emp where emp.name = 'John'";
list=getHibernateTemplate().find(query);
Первый метод:
getHibernateTemplate().deleteAll(list);
Второй метод:
Iterator<BulkChangeRequest> itList = list.iterator();
while(itList.hasNext()) {
Employee emp = itList.next();
getHibernateTemplate().delete(emp);
}
Отличаются ли они значительно с точки зрения производительности? Являются ли они по сути одинаковыми, то есть метод deleteAll удаляет строку один за другим?
Также не лучше ли сделать это в SQL, используя следующий запрос?
" delete from Employee where name = 'John'"