Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPQL查询不适用于不区分大小写的参数_Java_Database_Postgresql_Jpql_Case Insensitive - Fatal编程技术网

Java JPQL查询不适用于不区分大小写的参数

Java JPQL查询不适用于不区分大小写的参数,java,database,postgresql,jpql,case-insensitive,Java,Database,Postgresql,Jpql,Case Insensitive,我正在尝试编写一个JPQL查询,用于基于字符串搜索数据。当我尝试用“C”搜索数据时,它可以正常工作,但对“C”不起作用,下面是查询。例如:下面的查询正在为Cat、学院、折叠工作,但不为Cat、学院、折叠工作。任何帮助都将不胜感激 @Query("select ca.company_01 from CompanyAddress_02 ca WHERE ca.statusActiveSwitch = 'Y' AND ca.country.region.regionCode = :regionCode

我正在尝试编写一个JPQL查询,用于基于字符串搜索数据。当我尝试用“C”搜索数据时,它可以正常工作,但对“C”不起作用,下面是查询。例如:下面的查询正在为Cat、学院、折叠工作,但不为Cat、学院、折叠工作。任何帮助都将不胜感激

@Query("select ca.company_01 from CompanyAddress_02 ca WHERE ca.statusActiveSwitch = 'Y' AND ca.country.region.regionCode = :regionCode")
    Page<Company_01> findAllCompany_01Region(@Param("regionCode") String regionCode,  Pageable pageRequest);
@Query(“从CompanyAddress\u 02 ca中选择ca.company\u 01,其中ca.statusActiveSwitch='Y'和ca.country.region.regionCode=:regionCode”)
Page findAllCompany_01区域(@Param(“regionCode”)字符串regionCode,可分页请求);

一种方法是在JPQL查询中进行比较时,仅将区域代码的两侧小写:

@Query("SELECT ca.company_01 FROM CompanyAddress_02 ca WHERE ca.statusActiveSwitch = 'Y' AND LOWER(ca.country.region.regionCode) = LOWER(:regionCode)")
Page<Company_01> findAllCompany_01Region(@Param("regionCode") String regionCode,  Pageable pageRequest);
@Query(“从CompanyAddress\u 02 ca中选择ca.company\u 01,其中ca.statusActiveSwitch='Y'和更低(ca.country.region.regionCode)=更低(:regionCode)”)
Page findAllCompany_01区域(@Param(“regionCode”)字符串regionCode,可分页请求);

注意,如果您在区域代码中没有真正的用例,那么只需将其全部存储在一个案例中,例如小写,然后确保您传递给后端的内容也总是相同的情况。这避免了调用

LOWER()
,这会使
WHERE
子句不可搜索(即,它不能使用索引)。

一种方法是在JPQL查询中进行比较时,将区域代码的两侧小写:

@Query("SELECT ca.company_01 FROM CompanyAddress_02 ca WHERE ca.statusActiveSwitch = 'Y' AND LOWER(ca.country.region.regionCode) = LOWER(:regionCode)")
Page<Company_01> findAllCompany_01Region(@Param("regionCode") String regionCode,  Pageable pageRequest);
@Query(“从CompanyAddress\u 02 ca中选择ca.company\u 01,其中ca.statusActiveSwitch='Y'和更低(ca.country.region.regionCode)=更低(:regionCode)”)
Page findAllCompany_01区域(@Param(“regionCode”)字符串regionCode,可分页请求);

注意,如果您在区域代码中没有真正的用例,那么只需将其全部存储在一个案例中,例如小写,然后确保您传递给后端的内容也总是相同的情况。这避免了调用

LOWER()
,这使得
WHERE
子句不可搜索(即,它不能使用索引)。

请看@ScaryWombat不是该子句的完全副本,但是很好的捕获,我什么都找不到。请看@ScaryWombat不是该子句的完全副本,但是很好的捕获,我什么都找不到。