@Getter @Setter @Entity @Table(name = "C_User") @MetaData(value = "系统用户") @JsonInclude(Include.NON_EMPTY) @XmlAccessorType(XmlAccessType.PROPERTY) public class SysUser implements Serializable{ private static final long serialVersionUID = 1L; @MetaData("主键") @Id @GenericGenerator(name = "system-uuid", strategy = "org.hibernate.id.UUIDGenerator") @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "system-uuid") @Column(unique = true, length = 36, nullable = false) private String id; @MetaData("用户名") @Column(name="UserName",unique=true) private String UserName; @MetaData("密码") @Column(name="PassWord") private String PassWord; @MetaData("角色") @OneToMany(mappedBy="User",cascade = CascadeType.ALL,orphanRemoval=true) private Set<SysRole> allRole = new HashSet<SysRole>();这是实体,使用Spring Date Jpa的接口操作, save和saveAndFlush 操作的时候能插入成功? 名字明显是表示唯一了,为什么还可以插入呢? 这是问为什么?
然而数据库字段确不唯一,JPA的unique注解没有生效 ######T_T 啥意思啊,没看明白。###### @Table(name = "C_User",uniqueConstraints={@UniqueConstraint(columnNames={"UserName"})})
设置依然无效= = 我发现在MYSQL中会出现问题,ORCL是没有问题的。
######哥们,你的解决没?我也遇到这个问题了,擦。######回复 @tianpeng91 : 我忘记了JPA重建表的时候是否添加唯一标识了。ORM是不是Hibernate。######回复 @z201 : 好坑爹,无论我怎样删除表,让jpa自己建,还是没用,非得手动新建######数据库可能存在一定差异,表还是重建吧。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。