Spring EL-不区分大小写的语法,如?

Spring EL-不区分大小写的语法,如?,spring,spring-data-jpa,spring-data-rest,spring-el,Spring,Spring Data Jpa,Spring Data Rest,Spring El,我正在尝试实现一种存储库查询方法,以按地址的房屋名称搜索地址。我希望此搜索查询不区分大小写 @Query(value = "select ad from #{#entityName} ad where ad.houseName LIKE :houseName%") public Page<LocalAddress> findByHouseName(@Param("houseName") String houseName, Pageable page); 我在地址存储库中定

我正在尝试实现一种存储库查询方法,以按地址的房屋名称搜索地址。我希望此搜索查询不区分大小写

 @Query(value = "select ad from #{#entityName} ad where ad.houseName LIKE :houseName%")
    public Page<LocalAddress> findByHouseName(@Param("houseName") String houseName, Pageable page);
我在地址存储库中定义了以下搜索方法。但是这个搜索是区分大小写的

 @Query(value = "select ad from #{#entityName} ad where ad.houseName LIKE :houseName%")
    public Page<LocalAddress> findByHouseName(@Param("houseName") String houseName, Pageable page);

如何使此查询不区分大小写?

这是一个数据库引擎的问题。SpEL只计算表达式并用值替换占位符。参见问题

好吧,这是一个数据库引擎的问题。SpEL只计算表达式并用值替换占位符。请参阅问题

要实现您的任务,您不需要手动编写查询,只需使用Spring数据:


此处的更多信息:

要实现您的任务,您不需要手动编写查询,只需使用Spring数据:


此处的更多信息:

如果我的答案对您有帮助,则可能重复@DeltaCharlie。请不要忘记接受它。如果我的答案对您有帮助,则可能重复@DeltaCharlie。请不要忘记接受它。因此,是否不可能在SpEL中使用LIKE进行不区分大小写的搜索?我不希望我的查询被绑定到任何特定的数据库引擎。听起来你试图使用错误的工具来完成这项工作。您希望Spring如何实现该特性?我怀疑它是否足够聪明,可以神奇地重写您的查询,因为它必须支持所有数据库供应商。我想我理解您的观点。由于不区分大小写的LIKE的语法因DB引擎而异,因此不可能使用SpEL right?right生成动态查询。这不是不可能的,但总的来说这不是一件容易的事情。那么,在SpEL中使用LIKE进行不区分大小写的搜索是不可能的吗?我不希望我的查询被绑定到任何特定的数据库引擎。听起来你试图使用错误的工具来完成这项工作。您希望Spring如何实现该特性?我怀疑它是否足够聪明,可以神奇地重写您的查询,因为它必须支持所有数据库供应商。我想我理解您的观点。由于不区分大小写的LIKE的语法因DB引擎而异,因此不可能使用SpEL right?right生成动态查询。这不是不可能的,但总的来说这不是一件容易的事情。我已经知道这种方法。我只是想用SpEL实现同样的功能。使用findBy查询时,名称有时太长,因此必须有其他方法。我已经知道这种方法。我只是想用SpEL实现同样的功能。使用findBy查询时,名称有时太长,因此必须有其他选择。
@Query("select a from LocalAddress a where upper(a.houseName) like concat('%', upper(?1), '%')")
Page<LocalAddress> getByName(String partOfHouseName, Pageable page)