我父母之间有双向关系
AbstractNewsContent
以及它的孩子“新闻评论”。当我保存
摘要新闻内容
添加了
NewsComment
这个
newsComment.getAbstractNewsContent
null
摘要新闻内容:
@Entity
@Table(name = "NEWS_CONTENT")
public abstract class AbstractNewsContent {
@OneToMany(mappedBy = "newsContent", cascade = CascadeType.ALL, orphanRemoval = true)
private Set<NewsComment> newsComments = new HashSet<>();
}
新闻评论:
@Entity
@Table(name = "NEWS_COMMENT")
public class NewsComment {
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "news_content_id", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
private AbstractNewsContent newsContent;
}
DailyNewsContent dailyNewsContent = new TestDataBuilder()
.createDailyNewsContent().setRequiredDefaults(categoryFood)
.addComment().setRequiredDefaults().parent()
.build();
DailyNewsContent dbDailyContent = abstractNewsContentRepository.save(dailyNewsContent);
// there is the added newsComment inside the newsContent
Assertions.assertEquals(1, dbDailyContent.getNewsComments().size());
// NewsComment reference to the NewsContent is null
Assertions.assertNull(new ArrayList<>(dbDailyContent.getNewsComments()).get(0).getNewsContent());
abstractNewsContentRepository.delete(dbDailyContent);
// newsComment is deleted from the database, there is nothing in the Iterable
newsCommentRepository.findAll();