当有新的子对象时,我无法让我的合并级联下来 . 我有一个带有一组子对象的父对象(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 回答
我不知道是不是这样,但是对我来说,只有将hibernate的注释放在变量属性本身之上,而不是在getter方法上才有效 .
对我有用的是“手动”首先保存街道,然后是城市 .