我正在尝试使用实体管理器merge()更新子实体。我的实体是:
@Entity
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
@OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER, mappedBy = "customer")
private Set<Address> stores = new LinkedHashSet<>();
}
@Entity
public class Address{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String addressType;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "customerId")
private Customer customer;
}
我在一个jsp页面中添加Address(子实体)并在另一个jsp页面中删除它们并使用实体管理器合并方法保存它,并在每个页面中我保存客户(父实体)。它完美地工作,直到添加地址,但删除后,它不删除与客户相关的地址。请看看,让我知道我是否遗漏了任何东西。