在@OneToMany 中实现 orphanRemoval
Implementing orphanRemoval in @OneToMany
所以我试图删除一对多关系中的 child,但我不确定这是否是正确的做法。我正在阅读如何在线进行操作,但很多人都在谈论 entitymanager、cacasded、使用查询等。我不确定以哪种方式进行操作,通常我使用 crudrepository 并简单地执行 .save 和 .deleteById 等
这是我目前所拥有的
@Entity
public class User
@OneToMany(orphanRemoval = true, cascade = CascadeType.PERSIST)
private List<Payment>payment = new ArrayList<Payment>();
getters/setters
@Service
public class UserService {
public void addPayment(User user, Payment payment) {
user.getPayment().add(payment);
}
public void removePayment(User user, Payment payment) {
user.getPayment().remove(payment);
}
我必须在这里弄乱级联类型或实体管理器吗?
假设 user
方法参数是一个已与会话关联的托管实体,那么是的,这是正确的方法。
刷新会话后,Hibernate 将删除已从用户付款中删除的付款实例。
你可以试试CascadeType.ALL。它适用于我的情况。
所以我试图删除一对多关系中的 child,但我不确定这是否是正确的做法。我正在阅读如何在线进行操作,但很多人都在谈论 entitymanager、cacasded、使用查询等。我不确定以哪种方式进行操作,通常我使用 crudrepository 并简单地执行 .save 和 .deleteById 等
这是我目前所拥有的
@Entity
public class User
@OneToMany(orphanRemoval = true, cascade = CascadeType.PERSIST)
private List<Payment>payment = new ArrayList<Payment>();
getters/setters
@Service
public class UserService {
public void addPayment(User user, Payment payment) {
user.getPayment().add(payment);
}
public void removePayment(User user, Payment payment) {
user.getPayment().remove(payment);
}
我必须在这里弄乱级联类型或实体管理器吗?
假设 user
方法参数是一个已与会话关联的托管实体,那么是的,这是正确的方法。
刷新会话后,Hibernate 将删除已从用户付款中删除的付款实例。
你可以试试CascadeType.ALL。它适用于我的情况。