Как использовать jpa или hibernate, чтобы предотвратить удаление таблицы - PullRequest
0 голосов
/ 05 июля 2018

У меня есть архивная таблица, которую я не хочу удалять, так как использовать jpa или hibernate для предотвращения удаления таблицы (метод delete должен вызвать ошибку), или при удалении действительно обновить (состояние = удалено) , Есть ли какая-нибудь аннотация или какая-либо техника для этого?

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Вы можете использовать обратный вызов сущности @PreRemove и генерировать исключение времени выполнения.

https://docs.jboss.org/hibernate/orm/4.0/hem/en-US/html/listeners.html

0 голосов
/ 05 июля 2018

Аннотация @SqlDelete позволяет переопределить оператор DELETE по умолчанию, выполняемый Hibernate, поэтому мы подставляем вместо него оператор UPDATE. Следовательно, удаление объекта приведет к обновлению удаленного столбца до true

@SQLDelete(sql = "UPDATE tag SET deleted = true WHERE id = ?")

@MappedSuperclass
public abstract class BaseEntity {

    private boolean deleted;
}

@Entity(name = "Tag")
@Table(name = "tag")
@SQLDelete(sql =
    "UPDATE tag " +
    "SET deleted = true " +
    "WHERE id = ?")
public class Tag extends BaseEntity {

    @Id
    private String id;

    //Getters and setters omitted for brevity
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...