如何使用 jpa 或休眠来防止删除表



我有不想删除的存档表,所以如何使用 JPA 或休眠来防止删除表(删除方法必须抛出错误(,或者在删除时实际做更新(状态 = 已删除(。是否有任何注释或任何技术可以这样做?

可以使用实体回调@PreRemove并引发运行时异常。

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

@SqlDelete注解允许您覆盖 Hibernate 执行的默认DELETE语句,因此我们替换了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
}

最新更新