有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    是的,它也应该适用于标准。过滤器应用于会话级别,无论您使用什么加载实体(例如,HQL、entityManager.find()、Criteria API)