我和Spring Boot一起建立了一个Rest服务。我一直使用Spring Data JPA进行查询,但我愿意接受任何有助于解决我的问题的东西。
我想在任何列中查找数据库中具有匹配字符串的所有条目。
类似于以下内容:“查找全部”(所有 20 列)(字符串参数)
或“从所有列中选择 *”,其中参数 = “Foo”;
我有一个拥有近20个属性的实体,因此我希望避免在搜索中写入所有列名称。
我怎么能这样做?
是在所有列中搜索字符串的唯一方法SELECT * FROM yourTable其中field 1 LIKE“% value %”或field 2 LIKE“% value %”......;
此URL(https://www.baeldung.com/rest-api-search-language-spring-data-specifications)会帮助你的,我已经从URL复制了一些代码来解释你。
您需要定义一个条件类
public class SearchCriteria {
private String column;
private String operation;
private Object value;
}
然后,您需要定义您的搜索规范
public class SearchSpecification implements Specification<MyEntity> {
private SearchCriteria criteria;
private SearchSpecification(SearchCriteria criteria){
this.criteria =criteria;
}
@Override
public Predicate toPredicate
(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
if (criteria.getOperation().equalsIgnoreCase(":")) {
if (root.get(criteria.getColumn()).getJavaType() == String.class) {
return builder.like(
root.<String>get(criteria.getColumn()), "%" + criteria.getValue() + "%");
}
}
return null;
}
}
最后,您可以通过扩展 Jpa 指定专家来修改存储库
public interface MyRepository
extends JpaRepository<User, Long>, JpaSpecificationExecutor<MyEntity> {}
现在,您可以为您的案例创建每个列的规范,所有二十列
SearchSpecification spec1 =
new SearchSpecification(new SearchCriteria("column1", ":", "searchVal"));
SearchSpecification spec2 =
new SearchSpecification(new SearchCriteria("column2", ":", "searchVal"));
SearchSpecification spec3 =
new SearchSpecification(new SearchCriteria("column3", ":", "searchVal"));
然后,您需要执行如下查询
List<MyEntity> results =
repository.findAll(Specification.where(spec1).or(spec2).or(spec3));
我已经完成了名称索引。它包含椅子、椅子等数据。 当我尝试用“cha”搜索时,它不会返回任何椅子。这是返回“毛毯”,我期待的文件有椅子。 下面是我的代码: 搜索请求: 搜索响应: } 映射: 我该怎么解决这个问题? 谢谢,Sri
本文向大家介绍js实现搜索框关键字智能匹配代码,包括了js实现搜索框关键字智能匹配代码的使用技巧和注意事项,需要的朋友参考一下 只要使用搜索引擎的朋友应该都有这样的体会,就是当在搜索框输入关键字的时候,会出现自能匹配现象,这绝对是非常好的用户体验,下面就是一段类似的代码,当然这里只是掩饰,所以只能匹配的数据都是本地固定好的,在实际应用中可以才能够数据库读取数据。 效果图: 代码实例如下: 更多关于
本文向大家介绍Ajax实现模拟关键字智能匹配搜索效果,包括了Ajax实现模拟关键字智能匹配搜索效果的使用技巧和注意事项,需要的朋友参考一下 准备数据keyword.json:(这里只贴出部分数据) html结构 js: 效果图: 以上所述是小编给大家介绍的Ajax实现模拟关键字智能匹配搜索效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站
本文向大家介绍基于jQuery实现搜索关键字自动匹配功能,包括了基于jQuery实现搜索关键字自动匹配功能的使用技巧和注意事项,需要的朋友参考一下 今天我们就一起来看一个简单的基于jquery的关键字自动匹配的例子,希望文章能够对各位有帮助。 例子一 在项目中,有时候需要用户选择城市,但是城市太多,用户选择起来不太方便,所以提供了一个用户可以通过输入框输入城市的汉字或者拼音简写。结果示意图如下:
本文向大家介绍Jquery插件仿百度搜索关键字自动匹配功能,包括了Jquery插件仿百度搜索关键字自动匹配功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Jquery搜索关键字自动匹配功能的实现代码,供大家参考,具体内容如下 jQuery AutoComplete 是一个基于jQuery实现搜索关键字自动匹配提示的插件,该插件可扩展性强,表现性能优越,方便整合到自己的项目中使用;
问题内容: 我的数据库中有三个表: 这些表中的每个表都有两个字段,分别称为“内容”和“标题”。我希望能够在我的sql语句中使用“赞”来查看“ messages.content”,“ messages.title”,“ topics.content”,“ topics.title”,“ comments.content”和“ comments”。标题”使用关键字。 到目前为止,我的查询仅能从一张表中