坚持已经存在孩子的实体

时间:2017-09-11 15:58:35

标签: java hibernate jpa

我正在尝试将新实体Parent与db中已存在的子进行持久化。我不希望在父级的持久性期间更新子级,而只是想创建一个关系。当我从前端发送json时,它看起来像这样:

{“child”:{“id”:3}}

在保存中我得到了:

  

org.hibernate.TransientObjectException:object引用未保存的   瞬态实例 - 在刷新之前保存瞬态实例

@Entity
class Parent {
    @ManyToOne(optional = false)
    @JoinColumn(name = "CHILD_ID", referencedColumnName = "CHILD_ID")
    private Child child;
}

@Entity
class Child {
    @Id
    @Column(name="CHILD_ID")
    private Long id;
}

3 个答案:

答案 0 :(得分:1)

@Entity
class Parent {
    @ManyToOne(optional = false,  cascade = CascadeType.SAVED_UPDATE)
    @JoinColumn(name = "CHILD_ID", referencedColumnName = "CHILD_ID")
    private Child child;
}

答案 1 :(得分:0)

使用child_id加载现有的子对象,然后设置将其注入父级并保存父级。

答案 2 :(得分:0)

你不能。将@manyToOne注释可选属性设为true或检索子项的代理实例并将其设置为父项。