以编程方式进行Hibernate过滤

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

@Filter(name="smithFilter", condition="LAST_NAME = 'SMITH'")
public String getLastName()
{
    return this.lastName;
}
最佳答案
只需使用过滤条件将接收的参数定义FilterDef:

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

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

session.enableFilter("smithFilter").setParameter("lastName", "SMITH");

Hibernate文档中的更多细节:

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

转载注明原文:以编程方式进行Hibernate过滤 - 代码日志