constrain用法java_Java中的@UniqueConstraint注释

问题

我有一个Java bean。现在,我想确保该字段应该是唯一的。我使用以下代码:

@UniqueConstraint(columnNames={"username"})

public String username;

但我得到一些错误:

@UniqueConstraint is dissallowed for this location

什么是使用独特约束的正确方法?

**注意:**我正在使用play框架。

#1 热门回答(307 赞)

要确保字段值是唯一的,你可以编写

@Column(unique=true)

String username;

@UniqueConstraint注释用于在表级别注释多个唯一键,这就是将其应用于字段时出错的原因。

参考文献(JPA TopLink):

@UniqueConstraint

@Column

#2 热门回答(80 赞)

你可以在类级别使用以下语法

@Entity

@Table(uniqueConstraints={@UniqueConstraint(columnNames={"username"})})

public class SomeEntity {

@Column(name = "username")

public String username;

}

#3 热门回答(29 赞)

我目前正在使用play框架和hibernate以及JPA 2.0注释,这个模型没有问题

@Entity

@Table(uniqueConstraints={@UniqueConstraint(columnNames = {"id_1" , "id_2"})})

public class class_name {

@Id

@GeneratedValue

public Long id;

@NotNull

public Long id_1;

@NotNull

public Long id_2;

}

希望它有所帮助。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值