就像在休眠中一样,在EclipseLink中,我们具有批注@AdditionalCriteria,使我们可以在数据上添加过滤器。在休眠状态下,将其作为@Filter可以将其添加到类的顶部或类似的字段上。
@Filter(name="test", condition=":deleted is null")
public class MyClass { ... }
要么
@Filter(name="test", condition=":deleted is null")
private List<MyClass> list;
在EclipseLink中,@ AdditionalCriteria仅适用于类的第一个。在字段上还有其他类似于第二个注释的注释吗?
谢谢
最佳答案
我不建议使用此功能,因为它会从数据库中更改实体的视图,但是该功能仍存在于EclipseLink中-只是没有直接在批注中公开。
相反,您将需要使用定制程序来修改映射-更改映射以使其包含所需的过滤器表达式。这被描述here
请注意,尽管对引用实体的更改可能会影响过滤器,但更改不会反映在缓存中。对MyClass实例的任何更改都可能导致其失败,不会自动将其从实体列表中删除-您必须自己处理,或在事务完成时直接强制刷新实体。