Spring JPA + H2 DB : 保存字段值不区分大小写
Spring JPA + H2 DB : Save field value case insensitive
我正在使用 Spring JPA 和 H2 DB 编写 Spring 启动应用程序。在实体 user
中,我想用 unique 值保存字段 userId
以防 insensitive 方式。
所以一旦用户插入userId
作为user1,就不能再让他保存另一个userId
作为User1.
一种可能的方法是让 user
实体的 getters 读取 lower/upper case 中的值和setters在lower/uppercase中写入值,如下:
public String getUserId() {
return userId.toLowerCase();
}
public void setUserId(String userId) {
this.userId = userId.toLowerCase();
}
是否有 alternate/better 解决方案,最好是在架构级别?
我不确定如何使用注释配置它,但如果您手动创建架构并可以控制脚本,则可以对列使用 varchar_ignorecase。然后您可以以混合大小写的方式存储数据,但是您创建的任何数据库约束以及实际上任何比较都将忽略大小写。
我正在使用 Spring JPA 和 H2 DB 编写 Spring 启动应用程序。在实体 user
中,我想用 unique 值保存字段 userId
以防 insensitive 方式。
所以一旦用户插入userId
作为user1,就不能再让他保存另一个userId
作为User1.
一种可能的方法是让 user
实体的 getters 读取 lower/upper case 中的值和setters在lower/uppercase中写入值,如下:
public String getUserId() {
return userId.toLowerCase();
}
public void setUserId(String userId) {
this.userId = userId.toLowerCase();
}
是否有 alternate/better 解决方案,最好是在架构级别?
我不确定如何使用注释配置它,但如果您手动创建架构并可以控制脚本,则可以对列使用 varchar_ignorecase。然后您可以以混合大小写的方式存储数据,但是您创建的任何数据库约束以及实际上任何比较都将忽略大小写。