首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring数据JPA existsByField在MySQL中不区分大小写,如何使其区分大小写

问Spring数据JPA existsByField在MySQL中不区分大小写,如何使其区分大小写
EN

Stack Overflow用户
提问于 2019-12-16 04:34:44
回答 1查看 2.6K关注 0票数 5

ClientsRepository类

代码语言:javascript
复制
public interface ClientsRepository extends JpaRepository<ClientsEntity, Long> {

    boolean existsByClientId(String clientId);

}

ClientsEntity类

代码语言:javascript
复制
@Getter
@Setter
@NoArgsConstructor
@Entity
@Table(name = "clients")
public class ClientsEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    private String clientId;

}

客户表

| id | client_id | |---------------------|------------------| | 1 | ABC | |---------------------|------------------|

当调用existsByClientId("abc")返回true时,我如何强制检查大小写?

实际结果:

existsByClientId("abc") --> true

existsByClientId("ABC") --> true

预期结果:

existsByClientId("abc") --> false

existsByClientId("ABC") --> true

Java版本8 Spring引导版本2.1.2 version mysql连接器-java版本5.1.46

EN

回答 1

Stack Overflow用户

发布于 2019-12-16 13:09:13

默认情况下,派生的SQL查询区分大小写。然而,正如文档中所说的

方法解析器支持为单个属性设置IgnoreCase标志(例如,findByLastnameIgnoreCase(…))或者对于支持忽略大小写的类型的所有属性(通常是字符串实例findByLastnameAndFirstnameAllIgnoreCase(…))。是否支持忽略案例可能因存储而异,因此请参阅参考文档中的相关章节,以获得特定于存储的查询方法。

由于我们使用的是MySQL数据库,大小写敏感性取决于服务器、数据库和连接排序规则,而( ci)不区分大小写,因此比较大小写不敏感。与其他数据库比较时,创建意外结果。

从MySQL大小写不敏感选择的解决方案来看,将列排序规则更改为区分大小写是最简单的,不需要更改代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59350598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档