В настоящее время я должен создать временный Criteria
и получить соответствующий список сущностей, используя Criteria.list()
, а затем передать список на HibernateTemplate.deleteAll()
:
void delete(Criterion criterion) {
Criteria c = DetachedCriteria.forClass(Foo.class).getExecutableCriteria(session);
c.add(criterion);
getHibernateTtemplate().deleteAll(c.list());
}
Можно ли удалить по критерию, но без загрузки списка в первую очередь?
Может быть, мне следует преобразовать критерий в HQL, например "delete from Foo where " + criterion.toHQL()
?
ФОН
У меня есть поисковая форма, которая позже будет проанализирована и преобразована в состав Критерии.
Результаты поиска извлекаются с помощью Criteria.list ().
Теперь появился вопрос, я хочу удалить все результаты поиска. Должен ли я снова проанализировать форму поиска, но другим способом, чтобы преобразовать ее в строку HQL? Если бы я мог повторно использовать Критерии, все было бы проще.
Поскольку критерии наиболее эквивалентны предложению WHERE (не так ли?), Я не вижу причин, по которым критерии нельзя было использовать для удаления.