我有一个像这样的EntityObject
public class Adm{
private String id;
private String version;
private String name;
private String mimetype;
...
...
...
}
我想添加一个过滤掉具有相同名称的最高版本对象的所有对象。任何人都知道如何使用过滤器或创建查询?
我使用的是Hibernate Search Version 3.3.0。
// Trind
答案 0 :(得分:0)
在搜索中进行过滤的方法是通过FullTextFilters。见http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#query-filter 您可以在启用参数时将参数传递给过滤器,例如
fullTextQuery.enableFullTextFilter("version").setParameter( "max", 1001 );
您可以传递任意数量的参数,并传递您想要的任何参数类型(您只需在滤镜实现中进行适当的转换)。您可能需要另一个查询来确定最大值。毕竟可能是HQL或Criteria查询。 在过滤器中,您可以使用 NumericRangeQuery 。当然这完全取决于您的域模型。您尚未包含正在尝试运行的Hibernate Search注释和Hibernate Search查询。您还可以预先确定最大版本并缓存吗? 希望,这给你一些指示。