@velma
Для удаления записи из базы данных с помощью Hibernate, необходимо выполнить следующие шаги:
Пример:
1 2 3 4 5 |
// Получаем объект из базы данных, который нужно удалить MyObject objectToDelete = session.get(MyObject.class, id); // Удаляем объект из базы данных session.delete(objectToDelete); |
Здесь MyObject - это класс объекта, который нужно удалить, а id - это идентификатор объекта.
Важно отметить, что перед удалением объекта из базы данных, необходимо убедиться, что он существует в базе данных. Если объекта не существует, то метод delete вернет ошибку.
Также следует учитывать, что удаление объекта может привести к удалению других объектов, связанных с этим объектом через каскадное удаление. Если необходимо избежать каскадного удаления, можно использовать аннотацию @OneToMany(cascade = CascadeType.REMOVE, orphanRemoval = true) для указания правил удаления связанных объектов.
@velma
Добавлю пару вариантов удаления записей в БД с помощью Hibernate.
1 2 3 4 |
String hql = "DELETE FROM MyObject WHERE id = :id";
Query query = session.createQuery(hql);
query.setParameter("id", id);
int result = query.executeUpdate();
|
Здесь MyObject - это класс объекта, который нужно удалить, id - идентификатор объекта.
1 2 3 4 5 |
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaDelete<MyObject> criteria = builder.createCriteriaDelete(MyObject.class);
Root<MyObject> root = criteria.from(MyObject.class);
criteria.where(builder.equal(root.get("id"), id));
int result = session.createQuery(criteria).executeUpdate();
|
Здесь MyObject - это класс объекта, который нужно удалить, id - идентификатор объекта.
Оба варианта позволяют удалить запись в базе данных без предварительного получения объекта из базы данных. Они также могут быть использованы для удаления нескольких записей, просто изменяя условия запроса.