java - Hibernate 返回 com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException : Duplicate entry

标签 java hibernate hibernate-mapping

我正在尝试插入 Member 类,但它返回以下异常。

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: 
Duplicate entry '' for key 'UK_7pn834d04yft1rkvpqf0viuyc'

代码

Member member = new Member(email, encodedPassword,
                    "USER", false, firstName,
                    lastName);

....
session.save(member);

实体

@Entity
public class Member {
    @Id
    @Column(name = "username", nullable = false, unique = true)
    private String email;
    @Column(nullable = false)
    private String password;
    @Column(nullable=false)
    private String authority;
    @Column(nullable = false)
    private boolean enabled;
    @Column(nullable = false)
    String fname;
    @Column(nullable = false)
    String lname;
    @OneToMany
    List<Product> products = new ArrayList<Product>();
    @OneToMany(mappedBy = "requester")
    private Set<Friendship> friendRequests = new HashSet<Friendship>();
    @OneToMany(mappedBy = "friend")
    private Set<Friendship> friends= new HashSet<Friendship>();
    .....
}



 @Entity
public class Friendship implements Serializable {

    private static final long serialVersionUID = -12799066578787745989L;
    @Id
    @ManyToOne
    @JoinColumn(referencedColumnName = "username")
    Member requester;
    @Id
    @ManyToOne
    @JoinColumn(referencedColumnName = "username")
    Member friend;
    @Temporal(javax.persistence.TemporalType.DATE)
    Date date;
    @Column(nullable = false)
    boolean active;

    .....
}

最佳答案

检查您是否将空字符串添加到映射到 Member 的表中。 由于 Duplicate entry '' for key 'UK_7pn834d04yft1rkvpqf0viuyc' = 您正在尝试第二次添加相同的值。

看看这个:
@Column(name = "username", nullable = false, unique = true) 私有(private)字符串电子邮件;

由于您已将此标记为 unique 可能您正在尝试将 email 第二次添加为空字符串,但您对其有限制,表示您不能添加相同的值.

关于java - Hibernate 返回 com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException : Duplicate entry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31499180/

相关文章:

java - 在 OpenGL 中根据屏幕坐标绘制线条

java - 如何添加 4 个畅销耳机商品以添加到 Amazon.com 的购物车

java - 如何将 java bean 对象存储为 DB 列中的 clob(使用 Hibernate)

Java 通过 DropTargetListener 拖放文本

Java MessageDigest MD5 未返回预期结果

xml - maven 和 xml 解析的 Hibernate 依赖问题

java - Spring测试不将数据存储在数据库中

Hibernate 模式验证在固定长度字符字段上失败

java - 映射异常表示无法实例化 id 生成器。为什么会出现这个异常?

java - 为什么我会收到 org.hibernate.PropertyAccessException?