gpt4 book ai didi

jpa - 如何添加不区分大小写的 JPA 唯一约束?

转载 作者:行者123 更新时间:2023-12-02 21:24:09 25 4
gpt4 key购买 nike

我想向 JPA 实体添加不区分大小写的唯一约束。

假设我们有一个实体员工,需要对两列 NAMEPROJECT_TITLE 有唯一约束,其中 NAME 不区分大小写。

当数据库中已存在 JOHN,PROJECT1JOHN< 时,插入 JoHn, PROJECT1 会导致唯一约束冲突JoHn 在我们的例子中是相同的。

下面给出了满足上述要求的 SQL

ALTER TABLE employee ADD CONSTRAINT employee_name_unique
UNIQUE(LOWER(NAME),PROJECT_TITLE);

最佳答案

JPA 不支持此类约束。对于纯 JPA 解决方案,您必须使用额外的列。请参阅此处的答案:Case-insensitive JPA unique constraint?

@Entity Foo { 
private value;
@Column(unique = true)
private valueLowercased;

@PrePersist @PreUpdate private prepare(){
this.valueLowercased = value == null ? null : value.toLowerCase();
}
}

关于jpa - 如何添加不区分大小写的 JPA 唯一约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com