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