Spring JPA findBy存储库中如何忽略重音符号?

时间:2019-02-11 16:44:39

标签: spring-boot spring-data-jpa accent-sensitive

让我们说我们有这个资料库:

public interface DeviceTypeRepository extends CrudRepository<DeviceType, Integer>, JpaSpecificationExecutor<DeviceType> {    
    public Iterable<DeviceType> findByNameContaining(String name);    
}

如何通过忽略用户在搜索过滤器中输入错误的重音来获得相同的结果?

示例:João | Joao | JOÃOMarcio | Márcio

1 个答案:

答案 0 :(得分:1)

Spring的内置功能无法做到这一点。您可以考虑使用Elastic Search来做到这一点,有关此主题的文章You Have an Accent

另一种方法是不将重音字母存储在数据库中并在执行SQL请求之前执行映射,或者不使用自定义SQL函数在数据库端执行映射-但这是一个麻烦且脆弱的解决方案。