我在Angular / Spring / Oracle项目中使用Hibernate 4作为ORM工具。
我的父类@OneToMany
中有一个双向Portfolio
关系,如下所示:
@OneToMany(mappedBy = "portfolio", fetch = FetchType.EAGER, cascade = { CascadeType.ALL }, orphanRemoval = true)
@JsonManagedReference
private Set<PortfolioContributors> portfolioContributors;
和我的子实体@ManyToOne
中的PortfolioContributors
关系。
@ManyToOne
@JoinColumn(name = "PORTFOLIO_ID", referencedColumnName = "PORTFOLIO_ID", foreignKey = @ForeignKey(name = "FK_PORTFOLIO_CONTRIBUTORS"), nullable = false)
@JsonBackReference
private Portfolio portfolio;
问题是如果我从父类中的子实体集中删除一个条目。它没有设置从数据库中删除/删除。
如何实现这种行为?
答案 0 :(得分:1)
您还必须在关系的另一侧设置null
。像这样:
Portfolio portfolio = ...;
PortfolioContributors portfolioContributors = ...;
portfolio.getPortfolioContributors().remove(portfolioContributors);
portfolioContributors.setPortfolio(null);