我正在定义一个 Hibernate 过滤器,它指定默认条件,如下所示:
<filter-def name="IsDeletedFilter" condition="IsDeleted = 'false'" />
在我的实体映射中,我像这样关联过滤器:
<filter name="IsDeletedFilter" />
根据documentation ,以这种方式使用时,过滤器应应用默认条件。然而,当我尝试这样做时,Hibernate 在尝试解析实体映射时会抛出 NullPointerException。堆栈跟踪显示了这一点:
Caused by: java.lang.NullPointerException at org.hibernate.cfg.HbmBinder.parseFilter(HbmBinder.java:2957)
但是,如果我直接在实体映射中指定条件,如下所示:
<filter name="IsDeletedFilter2" condition="IsDeleted = 'false'"/>
它工作正常并且数据被正确过滤。
使用默认条件的正确方法是什么?
最佳答案
这是一个错误。可能的解决方法是在另一个文件中定义过滤器并将其包含在内。 http://opensource.atlassian.com/projects/hibernate/browse/HHH-2488
关于java - Hibernate 过滤器的默认条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2559348/