【发布时间】:2013-11-15 04:23:39
【问题描述】:
我正在重写一个 Hibernate/lucene 函数 findRangeSorting(),它根据权限过滤器检索表中的所有记录。现在,这是通过将 HQL(hibernate sql)字符串拼接在一起并使用它来查询数据库手动完成的(非常糟糕)。
我还有一个搜索功能,它使用更好的编程方法,通过使用 hibernate 注释为类创建过滤器并将布尔查询组合成一个全文查询,然后根据哪个用户进行搜索添加过滤器. (注意不是全部功能)
fullTextQuery = fullTextSession.createFullTextQuery(bq, this.type);
results = tab.getQueryFiltersForSearch(fullTextQuery).setSort(sort).list();
我想将此功能用于 findRangeSorting() 函数,因为过滤器已经到位,所以我基本上只需要让搜索返回所有内容。缺点是搜索 "" 和 * 无法完成此操作,因此我需要创建一个 FullTextQuery 而无需搜索实际术语,或者可能找到替代方法用于从具有基于用户权限的过滤器的表中检索一系列行。
我对hibernate没有最好的理解,所以我的假设可能完全错误。任何帮助表示赞赏。
【问题讨论】:
标签: java hibernate filter lucene hibernate-search