【问题标题】:How can I make case-insentitive using spring-data-jpa [duplicate]如何使用 spring-data-jpa 使大小写不敏感 [重复]
【发布时间】:2019-07-10 10:45:49
【问题描述】:
public interface XRepository extends JpaRepository<XEntity, Long> { 
Page<XEntity> findByParentIdAndNameContainingAndDescrContaining(Long parentId,String name, String descr, Pageable pageReq)
}

我在写。但它区分大小写。结果是错误的。我该如何解决?

【问题讨论】:

  • 谢谢你,我把“扩展 CrudRepository, JpaSpecificationExecutor”。这是工作
  • JpaSpecificationExecutor 不需要区分大小写
  • @Mansoor - 确实如此,因为CriteriaBuilder 允许使用其upper()lower() 方法将Path&lt;String&gt; 转换为大写| 小写。
  • OP 在哪里调用这些方法?

标签: java spring-data-jpa


【解决方案1】:

将 IgnoreCase 放在方法名称的末尾。

【讨论】:

    【解决方案2】:

    我通常自己编写查询,以便更好地可视化正在发生的事情。

    public interface XRepository extends JpaRepository<XEntity, Long> {
        @Query("SELECT xe from XEntity xe where xe.parentId = :parentId and xe.name like concat('%', :name, '%') and xe.description like concat('%', :descr, '%')")
        Page<XEntity> findByParentIdAndNameContainingAndDescrContaining(Long parentId,String name, String descr, Pageable pageReq)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 2010-11-26
      • 2012-09-02
      相关资源
      最近更新 更多