以编程方式进行Hibernate过滤

Sof*_*per 5 hibernate filter hibernate-mapping hibernate-annotations

如何以编程方式实现相同的结果(如下面的注释将实现)?或者在弹簧配置文件中注入值'SMITH'?

@Filter(name="smithFilter", condition="LAST_NAME = 'SMITH'")
public String getLastName()
{
    return this.lastName;
}
Run Code Online (Sandbox Code Playgroud)

jpk*_*ing 5

只需使用过滤条件将接收的参数定义一个 FilterDef :

@FilterDef(name = "smithFilter", parameters = {@ParamDef(name = "lastName", type = "string")})
@Filter(name="smithFilter", condition="LAST_NAME = :lastName")
Run Code Online (Sandbox Code Playgroud)

由于您还使用了“以编程方式”一词,您可能还想知道您可以根据其他输入设置参数,如下所示:

session.enableFilter("smithFilter").setParameter("lastName", "SMITH");
Run Code Online (Sandbox Code Playgroud)

Hibernate 文档中的更多详细信息:

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#objectstate-filters