使用JPA / Oracle可以有一个忽略字符串大小写的唯一约束吗?

时间:2011-08-23 17:15:42

标签: oracle jpa

我有一个db表,其中一列是String。我不认为这个案例很重要(例如“TEST ==”test“)。不幸的是,看起来JPA2确实如此,因为两个值都插入到我的表中;我希望第二个被拒绝。

是否有一种通用的方法来对字符串列上的“ignore-case”唯一约束进行注释?

作为替代方案,我还可以考虑在实际的db列上放置一个唯一的“ignore-case”约束。这在Oracle 10中是否可行?

我不想做的是编写代码,因为这通常发生在这个特定的数组中。

非常感谢所有帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用基于函数的唯一索引

来实现此目的
create unique index <index_name> on <table_name> (UPPER(<column_name>));

例如

create table t111( col varchar2(10));
create unique index test_idx on t111 (UPPER(col));
insert into t111 values('test');
insert into t111 values ('TEST');