在我的数据库中,我不删除对象。而是进行软删除。表示将delted标志设置为true。这应该通过使用@Filter注释的hibernate进行过滤。这有效,但我有问题,字段不会被过滤。
例如,我有一个子类和一个包含子项的父类。如果子项被删除并且父项被加载,则父对象包含子对象(尽管已正确设置了已删除的标志)。但是我希望像对象一样过滤子对象。有没有办法做到这一点?
我试着像收集一样对待这个领域,但这对我不起作用。
@Entity
@FilterDef(name = deletedFilter, parameters = @ParamDef(name = deletedParam, type = "boolean"))
@Filter(name = deletedFilter, condition = ":deletedParam = deleted")
public class Child {}
@Entity
public class Parent {
@OneToOne
@Filter(name = deletedFilter, condition = ":deletedParam = deleted")
private Child child = new Child();
}
如果布尔标志不起作用,则可以使用Integer值。并可以相应地检查。