【发布时间】:2017-12-25 18:14:24
【问题描述】:
在我的数据库中,我不删除对象。而是完成了软删除。表示将 delted 标志设置为 true。这应该由休眠使用@Filter 注释过滤。 这可行,但我遇到的问题是字段没有被过滤。
例如,我有一个子类和一个包含子类的父类。如果子对象被删除并且父对象被加载,则父对象包含子对象(尽管已正确设置已删除标志)。但我希望像处理集合一样过滤子对象。 有没有办法做到这一点?
我试着把这个领域当作收藏品,但这对我不起作用。
@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();
}
【问题讨论】:
-
您不应该在集合中添加
@OneToMany吗? -
是的,你是对的。我会改变它 :-) 但是因为在我的代码中它是正确的,所以这不会改变行为。
标签: java hibernate soft-delete