gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:36:39 25 4
gpt4 key购买 nike

我正在尝试将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com