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
?
答案 0 :(得分:1)
是的,它也适用于Criteria。无论您使用什么来加载实体(HQL,session.get(),Criteria API或本机查询),都会在会话级别应用过滤器。