Как удалить не одну запись, а каждую запись с 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());
→ Ссылка