如何使用Spring数据替换Spring启动应用程序中的所有相关实体

如何使用Spring数据替换Spring启动应用程序中的所有相关实体,spring,spring-boot,spring-data-jpa,spring-data,Spring,Spring Boot,Spring Data Jpa,Spring Data,我有一个用户实体,它有许多地址实体 地址的关系定义如下: @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false, updatable = false) private User user; @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "user") private List<Ad

我有一个
用户
实体,它有许多
地址
实体

地址
的关系定义如下:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false, updatable = false)
private User user;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "user")
private List<Address> addresses;
用户
的关系定义如下:

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false, updatable = false)
private User user;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "user")
private List<Address> addresses;

如果我没有弄错,您希望删除子地址实体,因此我将执行以下操作:

@Entity
public class User {
...

    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
    private List<Address> addresses;

是实际代码还是修改代码?后面的部分-
/。。。。。。其他一些代码……
不确定您的意思,因为FetchType.LAZY,现有地址实体没有加载到持久性上下文,所以JPA不会对它们做任何处理。如果您将FetchType更改为“地址列表上的渴望”,并明确删除这些地址,它应该会起作用。@PiotrCierpich,您能否将其作为一个带有更多细节的答案?我不确定需要在哪里添加
FetchType.LAZY
。我该如何明确地删除地址?@PiotrCierpich,是的!虽然我没有使用
clear()
方法。没有它,它就成功了