嗨,我有一个像这样的 EntityObject
public class Adm{
private String id;
private String version;
private String name;
private String mimetype;
...
...
...
}
我想添加一个过滤器,过滤掉所有具有相同名称的对象的最高版本的对象。任何人都知道如何使用过滤器或在创建查询时执行此操作?
我使用休眠搜索版本 3.3.0。
//三连
嗨,我有一个像这样的 EntityObject
public class Adm{
private String id;
private String version;
private String name;
private String mimetype;
...
...
...
}
我想添加一个过滤器,过滤掉所有具有相同名称的对象的最高版本的对象。任何人都知道如何使用过滤器或在创建查询时执行此操作?
我使用休眠搜索版本 3.3.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 查询。您还可以预先确定并缓存最高版本吗?希望,这能给你一些指示。