【发布时间】:2017-08-06 21:44:23
【问题描述】:
如何使用 spring data jpa 使 pojo 中的字段唯一?我知道如何使用 jpa 做到这一点
供参考:multi column constraint with jpa
如果有办法,可以用spring boot吗?
【问题讨论】:
如何使用 spring data jpa 使 pojo 中的字段唯一?我知道如何使用 jpa 做到这一点
供参考:multi column constraint with jpa
如果有办法,可以用spring boot吗?
【问题讨论】:
使用@UniqueConstraint 批注指定唯一约束将包含在为主表或辅助表生成的DDL 中。
或者,为了确保字段值是唯一的,您可以编写
@Column(unique=true)
String myField;
【讨论】:
使用 Spring Data JPA,您正在使用 JPA,因此您可以使用 JPA 指定唯一约束。在这方面,Spring Boot 或 Spring Data 没有什么特别之处。
【讨论】:
如果表中有单个列具有UNIQUE KEY 约束,则只需在注释@Column 中添加属性unique=true
代码片段:
@Column(name = "unique_key_field", nullable = false, unique = true)
String uniqueKeyFied;
如果您在表中有多个唯一键约束,那么您只需遵循JPA annotations,因为spring-boot-data-starter 不为表约束(KEY/UNIQUEKEY)提供任何特殊注释。
代码片段:
@Entity
@Table(name = "table_name", uniqueConstraints={
@UniqueConstraint( name = "idx_col1_col2", columnNames ={"col1","col2"})
})
【讨论】:
嗯,以 Kotlin 为例:
Entity
@Table(name = "TBL_XXX",
uniqueConstraints = [
UniqueConstraint(name = "sessionid_uindex", columnNames = ["sessionId"])
]
)
data class XxxReturn(
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "XXX_ID")
var id: Long? = null,
var sessionId: String,
var msg: String
)
【讨论】: