java Hibernate过滤器可以用于条件查询吗?
Hibernate文档提供了一些关于Hibernate filters的信息,并在该部分讨论了HQL和负载获取。但它从未明确提到将它们与criteria queries结合使用。像下面这样的东西会起作用吗?假设Hibernate 4.3
实体定义
@Entity
@FilterDef(name="myFilter", parameters=@ParamDef( name="myParam", type="integer" ) )
@Filters( {
@Filter(name="myFilter", condition="myField = :myParam")
} )
// assume MyType contains some mapped field named "myField"
public class MyType { ... }
查询代码
sess.enableFilter("myFilter").setParameter("myParam", 1);
Criteria crit = sess.createCriteria(MyType.class);
//set some other restrictions on crit
List items = crit.list();
是否已应用myFilter
项
# 1 楼答案
是的,它也应该适用于标准。过滤器应用于会话级别,无论您使用什么加载实体(例如,HQL、entityManager.find()、Criteria API)