2

在我的数据库中,我不删除对象。而是完成了软删除。表示将 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();
} 
4

2 回答 2

1

休眠过滤器不适用于@OneToOne关系。

https://hibernate.onjira.com/browse/HHH-4026

解释是对问题的评论:过滤器会改变关系的基数。

于 2012-08-22T16:00:03.807 回答
0

如果布尔标志不起作用,您可以改用数值。并可以进行相应的检查。

于 2017-12-25T10:14:24.377 回答