gpt4 book ai didi

java - JPA 合并导致重复

转载 作者:搜寻专家 更新时间:2023-11-01 00:53:42 26 4
gpt4 key购买 nike

我有下面的实体类。当用户首次注册时,仅提供用户名和密码,因此帐户列表(想想个人资料)是空的。稍后,当他们添加帐户时,用户对象在客户端更新,传递到服务器,然后调用 entityManager.merge(user)。合并用户时,该帐户被添加到数据库中 6 次,所提供的地址被添加 3 次。我不确定为什么。我希望该帐户被添加一次,并且只添加一个地址。对可能发生的事情有什么想法吗?

@Entity
public class User implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
private int id;

@OneToMany(cascade=CascadeType.ALL)
@JoinTable(name="user_accounts")
private List<Account> accounts;

//...getters and setters ...
}




@Entity
public class Account implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
private long id;

@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="address")
private Address address;

//...getters and setters...

}



@Entity
public class Address implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
private int id;

@Column(name="street")
private String street;

@Column(name="city")
private String city;

@Column(name="state")
private String state;

@Column(name="zip")
private String zip;

//...getters and setters...
}

最佳答案

这是在集合为列表的情况下使用合并的已知问题。不幸的是现在还没有真正修复:HHH-5855

关于java - JPA 合并导致重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1930966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com