Как удалить не одну запись, а каждую запись с search_id 1 в БД
Как сделать метод, чтобы удалить не одну, а каждую запись со значением 1 в search_id
Это Класс HibernateUril и метод delete удаляет один запис
public static void delete(String HQL){
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Query q = session.createQuery(HQL);
DataEntity platform = (DataEntity) q.list().get(0);
session.delete(platform);
session.getTransaction().commit();
session.close();
}
Main
HibernateUtil.delete("from TenderEntity where search_id = " + searchEntity.getId());
Ответы (1 шт):
Автор решения: Roman Konoval
→ Ссылка
Оставаясь в рамках этого кода:
Query q = session.createQuery(HQL);
for(Object entity : q.list()) {
DataEntity platform = (DataEntity) entity;
session.delete(platform);
}
session.getTransaction().commit();
Если не используются interceptor-ы, которые должны вызываться для сущности на разных этапах ее жизненного цикла (в данном случае перед удалением), то можно сделать это одним запросом в БД без запроса на получение:
session.beginTransaction();
Query query = session.createQuery(HQL);
query.executeUpdate();
session.getTransaction().commit();
session.close();
Только клиенту этого метода, нужно будет передавать измененный запрос:
HibernateUtil.delete("delete TenderEntity where search_id = " + searchEntity.getId());
