Hibernate @OneToMany不会从基础集合

时间:2016-08-25 14:24:56

标签: json hibernate rest spring-mvc jpa

我在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;

问题是如果我从父类中的子实体集中删除一个条目。它没有设置从数据库中删除/删除。

如何实现这种行为?

1 个答案:

答案 0 :(得分:1)

您还必须在关系的另一侧设置null。像这样:

Portfolio portfolio = ...;
PortfolioContributors portfolioContributors = ...;

portfolio.getPortfolioContributors().remove(portfolioContributors);
portfolioContributors.setPortfolio(null);