spring-boot - 如何忽略 Spring JPA findBy 存储库中的重音?

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

假设我们有这个存储库:

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

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

例子:João |若昂 | JOÃO, 马西奥 | Márcio

最佳答案

在 Spring 的内置功能中无法做到这一点。你可以考虑使用Elastic Search为此,有一篇关于此主题的文章 You Have an Accent .

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

关于spring-boot - 如何忽略 Spring JPA findBy 存储库中的重音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54635250/

相关文章:

java - 如何查找哪个模块定义了注释

java - 如何过滤 JPA 存储库?

go - 如何解码 base64 字符串并获得包括重音符号在内的正确字符?

spring-boot - 基本身份验证不适用于 POST 端点

java - 覆盖子项目中定义的 application.properties 的父项目中的单个属性?

java - 找不到 Gradle 构建工具.jar

java - 无法用jpa+spring boot创建表

mysql - JPA/Hibernate 在多对多连接与另一个连接后初始化对象

mysql - 删除 mysql 查询中字符串字段上的重音