java - 如何编辑 Hibernate Search java 源代码,或者可能是一个解决方法?

标签 java hibernate hibernate-search

我正在尝试将 FullTextFilters 添加到 hibernate 中的 FullTextQuery 中,并且只有方法 FullTextFilter.setParameter(String name, Object value)

我正在尝试创建一个灵活的通用函数,根据其搜索的实体向查询添加过滤器,有些有一个参数,有些有两个过滤器,所以我想向添加一种方法>FullTextFilterImpl; setParameters(String[] names, String[] value) 我可以在其中传入所有参数的名称,可能还可以传入每个参数的值的多维数组来转换我当前的代码

If( "checking which entity it is"){
  fullTextQuery.enableFullTextFilter("FilterName").setParameter("firstFilter", "val1").setParameter("secondFilter", "val2");
}
else if("this entity's filter only has one parameter"){
     fullTextQuery.enableFullTextFilter("FilterName").setParameter("firstFilter", "val1");
}

我尝试创建 FullTextFilterImpl 的子类并在其中放入 setParameters 函数,但此代码的设置方式我不确定如何将其用作 FullTextQuery.enableFullTextFilter( filterName) 返回一个 FullTextFilter 对象,然后对该对象调用 setParameter() 。我不确定如何进行 setParameters

编辑:我已经下载了 hibernate-search 源代码并将以下方法添加到 FullTextFilterImpl 中,我认为它可以实现我想要的功能,但是当我去构建它时(即使只是开箱即用的项目)我收到所有这些 checkstyle Only one new line is allowed at the end of a file 错误。 hibernate 快速构建指南中是否遗漏了一些内容。

public FullTextFilter setParameters(Map<String, List<String>> params){
    for (String key : params.keySet()) {
        List<String> values = params.get(key);
        for(int i=0; i< values.size() ; i++){
            parameters.put(key, values.get(i));
        }
    }
    return this;
}

最佳答案

您可以轻松地将属性映射传递给您的自定义过滤器,签名是:

FullTextFilter setParameter(String name, Object value);

所以你可以这样做

filter.setParameter( "myMap", properties );

其中属性是 HashMap 。

关于编译错误信息:

Only one new line is allowed at the end of a file

是来自checkstyle的消息,它验证代码风格是否符合Hibernate代码风格。 修复方法非常简单:源文件末尾有多个空行,将其删除即可。错误消息应该告诉您哪些文件需要修改。

关于java - 如何编辑 Hibernate Search java 源代码,或者可能是一个解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19572840/

相关文章:

java - 从产品设计中获取零件类别

java - Spring、Hibernate 和 .xml 错误

Java Hibernate id 自动递增

hibernate - Hibernate Search 如何处理从父类(super class)继承的注释?

java - Android 按钮 ArrayList onClickListener 不起作用。为什么?

java - IntelliJ 显示 "always true"提示但不显示 "always false"的 instanceof

java - 如何在 Spring 中实现基于注解的集合合并?

java - 使用 StoredProcedureQuery 时 session /EntityManager 关闭

elasticsearch - 将索引配置应用于索引创建

hibernate - 带有Elasticsearch的Hibernate Search中的初始索引崩溃