Spring Data Jpa中的唯一键约束

时间:2017-03-15 22:24:56

标签: spring-boot spring-data

如何使用spring数据jpa使pojo中的字段唯一?我知道如何使用jpa

供参考:multi column constraint with jpa

如果有办法,是否可以使用弹簧靴?

4 个答案:

答案 0 :(得分:7)

使用@UniqueConstraint注释指定将唯一约束包含在主表或辅助表的生成DDL中。

或者,要确保字段值是唯一的,您可以编写

@Column(unique=true)
String myField;

答案 1 :(得分:1)

使用Spring Data JPA,您正在使用JPA,因此您使用JPA指定唯一约束。在这方面没有什么特别的Spring Boot或Spring Data。

答案 2 :(得分:0)

科特林的例子:

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
)

答案 3 :(得分:0)

如果表中有一个具有UNIQUE KEY约束的列,则只需在注释unique=true中添加属性@Column

代码片段:

@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"})
       })