java - JPQL 之类的查询忽略 blob/html 和多个关键字的大小写
问题描述
我的 spring boot 项目中有一个自定义 jpql 查询,如果存在某个关键字(可以是多个单词,例如“我正在搜索”),它会在 blob 文件(HTML 内容)中搜索。它就像一个搜索引擎。但我想忽略区分大小写。所以在网上搜索后,我做了以下查询:
/**
* Custom query to search in results
* @param keyword keyword to search with
* @param startDate to search between
* @param endDate to search between
* @return list of all results
*/
@Query("select r from Requests r where lower(r.document) like lower(concat('%', :keyword, '%')) and (r.timestamp between :startDate and :endDate) ")
List<Requests> searchRequests(
@Param("keyword") String keyword, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
但是现在它似乎不适用于关键字字符串中的多个单词,一个单词就可以了。
如果我将其更改为:
/**
* Custom query to search in results
* @param keyword keyword to search with
* @param startDate to search between
* @param endDate to search between
* @return list of all results
*/
@Query("select r from Requests r where r.document like %:keyword% and (r.timestamp between :startDate and :endDate) ")
List<Requests> searchRequests(
@Param("keyword") String keyword, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
它适用于keyword
字符串中的多个单词,但它区分大小写......
我不确定这是为什么,但可能是因为 r.document 是一个包含 HTML 页面的 blob 文件?但是它确实适用于keyword
字符串中的单个单词。所以也许它只会降低字符串值中的第一个单词keyword
解决方案
推荐阅读
- math - PCA 的主要成分何时构成数据集的基础?
- regex - 如何通过正则表达式分隔的拆分函数将VBA中的字符串拆分为数组
- python - 从 Python 调用时与 openssl 的结果不一致
- ajax - Webix:更新树形菜单数据的 AJAX 响应
- constraints - 基于 System Verilog 中运行时数据的加权随机化
- sql - 如何在 SQL 中对数字进行四舍五入
- vmware-clarity - 为 1.0 版自定义 Clarity 主题
- java - 从网页获取 Java 或 C 程序的输入?
- c++ - Python实现不适用于c ++中的相同逻辑
- javascript - 在鼠标右键单击时禁用上下文菜单