我正在为我的应用程序使用 Spring 和 Hibernate。
我只允许在需要设置字段 isActive=false 的应用程序中进行逻辑删除。我没有在所有实体中重复相同的字段,而是为“isActive”创建了一个具有属性和 getter-setter 的基类。
因此,在删除期间,我调用 update() 方法并将 isActive 设置为 false。
我无法让这个工作。如果有人有任何想法,请告诉我。
基础实体
public abstract class BaseEntity<TId extends Serializable> implements IEntity<TId> {
@Basic
@Column(name = "IsActive")
protected boolean isActive;
public Boolean getIsActive() {
return isActive;
}
public void setIsActive(Boolean isActive) {
isActive= isActive;
}
}
子实体
@Entity(name="Role")
@Table(schema = "dbo")
public class MyEntity extends BaseEntity {
//remaining entities
}
休眠实用程序类
public void remove(TEntity entity) {
//Note: Enterprise data should be never removed.
entity.setIsActive(false);
sessionFactory.getCurrentSession().update(entity);
}