Переопределить удаление по умолчанию () / DELETE в JPA / Hibernate - PullRequest
4 голосов
/ 21 февраля 2012

Вместо удаления записи наш клиент хотел бы пометить запись как удаленную. Мы используем JPA2 / Hibernate. Я хотел бы сделать что-то вроде следующего:

@Entity
@Table(name="TABLE")
@ActionOverride(action="delete", with="activeFlag = false")
public class Table {
    @Column(name="ACTIVE_FLAG")
    boolean activeFlag;

    // ...

}

Я делал это в прошлом, но не могу найти правильный синтаксис и аннотацию.

Ответы [ 2 ]

8 голосов
/ 22 февраля 2012

Взгляните на документацию гибернации , вы ищете аннотацию @SQLDelete.

@Entity
@Table(name="TABLE")
@SQLDelete(sql = "UPDATE TABLE SET ACTIVE_FLAG = false WHERE id = ?")
public class Table {
  @Column(name="ACTIVE_FLAG")
  boolean activeFlag;
  // ...
}
1 голос
/ 22 февраля 2012

Похоже, что аннотация org.hibernate.annotations.SQLDelete:

SqlDelete Аннотация для перезаписи метода УДАЛЕНИЯ по умолчанию в Hibernate

Вы задаете свой собственный SQL-запрос обновления в атрибуте sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...