在JPA/Hibernate中覆盖默认的remove()/ DELETE

ryn*_*rtn 4 hibernate

我们的客户希望将记录标记为已删除,而不是删除记录.我们正在使用JPA2/Hibernate.我想做类似以下的事情:

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

    // ...

}
Run Code Online (Sandbox Code Playgroud)

我过去做过这个,但我似乎无法找到正确的语法和注释.

tsc*_*cho 8

看一下hibernate文档,你正在寻找的注释是@SQLDelete.

@Entity
@Table(name="TABLE")
@SQLDelete(sql = "UPDATE TABLE SET ACTIVE_FLAG = false WHERE id = ?")
public class Table {
  @Column(name="ACTIVE_FLAG")
  boolean activeFlag;
  // ...
}
Run Code Online (Sandbox Code Playgroud)