在我的数据库中,我不删除对象。相反,会进行软删除。表示 delted 标志设置为 true。这应该由 hibernate 使用 @Filter 注释进行过滤。 这可行,但我遇到字段未过滤的问题。
例如,我有一个子类和一个包含子类的父类。如果子对象被删除并且父对象被加载,则父对象包含子对象(尽管已正确设置删除标志)。但我希望子对象能够像处理集合一样被过滤。 有什么办法可以做到这一点吗?
我尝试将这个领域视为 Collection ,但这对我不起作用。
@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();
}
最佳答案
Hibernate 过滤器不适用于 @OneToOne
关系。
https://hibernate.onjira.com/browse/HHH-4026
解释是对该问题的评论:过滤器会改变关系的基数。
关于java - 使用 hibernate 过滤非原始类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12075054/