Аннотация @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
}