我有一个user类,它有一个字段:
@OneToMany(mappedBy = "user", fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
@JsonManagedReference
private Set<FavoriteProduct> favoriteProducts = new HashSet<>();最喜欢的产品类包含该字段:
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "users_id", nullable = false)
@JsonBackReference
private User user;当我尝试通过扩展JpaRepository的收藏产品存储库来删除收藏产品时,这并不成功。
但是,当我将EAGER fetch更改为LAZY fetch时,它可以工作,如下所示:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "users_id", nullable = false)
@JsonBackReference
private User user;这可能是什么原因呢?
发布于 2020-12-08 07:16:02
如果子对象是从父对象引用的,则
对于
FetchType.EAGER,您也在初始化与父级的关联。对于使用FetchType.LAZY的
user关联。user,然后再删除。即使使用FetchType.LAZY,它也应该模拟类似的行为
https://stackoverflow.com/questions/65189920
复制相似问题