hibernate - 覆盖 JPA/Hibernate 中的默认删除()/DELETE

标签 hibernate

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

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

    // ...

}

我过去曾经这样做过,但我似乎找不到正确的语法和注释。

最佳答案

看看hibernate documentation ,您要查找的注释是 @SQLDelete

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

关于hibernate - 覆盖 JPA/Hibernate 中的默认删除()/DELETE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9383071/

相关文章:

multithreading - 如何创建一个具有多个线程的服务,这些线程都使用相同的 Hibernate session ?

hibernate - 在 Hibernate 中防止 select 查询时插入

java - 如何在 Hibernate 中更新实体列表

java - Hibernate OneToMany 延迟获取

java - Hibernate 替换字符串条件

java - 尝试连接 docker mysql 时,ResourcePool 无法从其主要工厂或源错误获取资源

java - Hibernate 查询@JoinColumn 和mappedBy

java - 线程中的异常 "main"org.hibernate.MappingException : Association references unmapped class hibernate

hibernate - 使用 Hibernate 处理国际化

java - 关于@ForceDiscriminator/@DiscriminatorOptions(force=true)的使用