Java 在SQL中,我是否可以将唯一约束添加到';这不是必需的吗?
我有一个标准的用户实体,包括姓名、手机号码和电子邮件地址。当然,我不希望在电子邮件地址中有任何重复,但我也不希望它是必需的。我不确定唯一约束是否允许多个记录为空。(这难道不违反独特性吗?)这可能吗?如果是这样,我如何在JPA中指定此约束?总之-是的,这是可能的。唯一性意味着列不能有两个相等的值Java 在SQL中,我是否可以将唯一约束添加到';这不是必需的吗?,java,sql,jpa,Java,Sql,Jpa,我有一个标准的用户实体,包括姓名、手机号码和电子邮件地址。当然,我不希望在电子邮件地址中有任何重复,但我也不希望它是必需的。我不确定唯一约束是否允许多个记录为空。(这难道不违反独特性吗?)这可能吗?如果是这样,我如何在JPA中指定此约束?总之-是的,这是可能的。唯一性意味着列不能有两个相等的值nulls不是值,而是缺少值。因为它们不是值,所以不会影响唯一性,并且唯一列可以有任意多个nulls 在JPA中,您可以使用@列注释的unique属性来指定这一点: @Column(unique=true)
null
s
在JPA中,您可以使用@列
注释的unique
属性来指定这一点:
@Column(unique=true)
String email;
Unique constraint不允许多个空值,但有一个解决方案-在电子邮件列上使用Unique constraint可以满足您的需要。这已经在这里得到了回答-
因为它们不是值,所以不会影响唯一性,并且唯一列可以有任意多个空值
=>。它依赖于RDBMS,但可以通过过滤的唯一索引轻松解决。这取决于数据库。一些数据库允许使用NULL
值进行重复;有些仅允许一个NULL
值。
@Column(unique=true)
String email;