首页 文章

如何使JPA合并为OneToMany关系插入新的子对象

提问于
浏览
2

当有新的子对象时,我无法让我的合并级联下来 . 我有一个带有一组子对象的父对象(City)

@OneToMany(mappedBy = "parent", cascade = { CascadeType.ALL }, fetch=FetchType.LAZY )
public Set<Street> getStreets() {
    return streets;
}

以及引用父对象的子对象(Street)

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="City", nullable=false)
public City getParentCity(){
    return parentCity;
}

而且我正在运行日常例程以将信息转储到数据库中 . 一切顺利,花花公子直到JPA进入一条新街道 . 当它给我一个EntityNotFoundException . 我假设这意味着数据库中已经没有新街道的街道了 . 从我读过的内容来看,因为孩子是事务的实际所有者,但如果遇到这个“EntityNotFound”异常,我需要它来持久化新对象

我没有使用自动生成的主键,它是数据集中已存在的键 . 目前,我可以访问在父对象上使用em.merge()的微服务 .

我看到有一个选项可以删除不再存在的对象(orphanRemoval);有没有办法添加新的?

谢谢

2 回答

  • 0

    我不知道是不是这样,但是对我来说,只有将hibernate的注释放在变量属性本身之上,而不是在getter方法上才有效 .

  • 0

    对我有用的是“手动”首先保存街道,然后是城市 .

相关问题