我是靠谱客的博主 英勇黄蜂,最近开发中收集的这篇文章主要介绍mysql 如何去掉字段唯一约束_Jhipster - JPA 如何设置字段的唯一性(Unique),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
问题提出
如果有一个domain(Java bean)。现在,我要确保字段是唯一的。需要如何设置呢? 比如如下代码, 我们要保证 openid是唯一的, 保存到数据库里的数据不会有重复.
/**
* A WxUser.
*/
@Entity
@Table(name = "wx_user")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@org.springframework.data.elasticsearch.annotations.Document(indexName = "wxuser")
public class WxUser implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "openid")
private String openid;
@Column(name = "nickname")
private String nickname;
@Column(name = "sex")
private Long sex;
}
解决方法
- 如果只要保证一个字段, 比如这里就是 列 openid唯一, 只需要 添加 " unique=true " 到@Column注解就可以.
@Column(name = "openid", , unique=true) private String openid; - 如果需要多个字段组合唯一性, 比如 组合 nickname 和 openid 为唯一性, 这个时候就要用到 @UniqueConstraint 注解. 添加到@Table注解里面, 如下:
@Entity
@Table(name = "wx_user", uniqueConstraints={@UniqueConstraint(columnNames={"nickename", "openid"})})
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@org.springframework.data.elasticsearch.annotations.Document(indexName = "wxuser")
public class WxUser implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "openid")
private String openid;
@Column(name = "nickname")
private String nickname;
@Column(name = "sex")
private Long sex;
}
如果有多个需要组合添加到@Table, 用逗号隔开就好.
uniqueConstraints={@UniqueConstraint(columnNames = {"nickename", "openid"}),@UniqueConstraint(columnNames = "column2", "column3")})
Jhipster设置
Jhipster使用Liquibase 生成数据库的表, 不但需要在域对象(domain)上使用jpa的标注, 还要修改liquibase对应的xml文件.如 WxUser文件.
打开这个文件, 找到 openid, 添加 unique="true", 如下图:
那么如何添加多个字段组合唯一性, 比如 组合 nickname 和 openid 为唯一性, 道 liquibase的xml文件中呢? 需要打开如下的xml文件,
添加如下changeSet就可以了
<changeSet author="liquibase-docs" id="addUniqueConstraint-example">
<addUniqueConstraint
columnNames="nickname, openid"
constraintName="your_constraint_name"
tableName="wx_user"
/>
</changeSet>
Jhipster交流和学习:
- 添加QQ群: 884675737
- 关注公众号: szit0755
最后
以上就是英勇黄蜂为你收集整理的mysql 如何去掉字段唯一约束_Jhipster - JPA 如何设置字段的唯一性(Unique)的全部内容,希望文章能够帮你解决mysql 如何去掉字段唯一约束_Jhipster - JPA 如何设置字段的唯一性(Unique)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复