1

我有 2 节课。父母和孩子。如下:

@Entity
@Table(name = "parent")
public class Parent implements Serializable {
    private String name;
    private List<Child> childs;

    @OneToMany(mappedBy="parent")
    @Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE})
    public List<Child> getChilds() {
        return childs;
    }
    @Id
    @Column(name="parent_name")
    public String getName() {
        return name;
    }    

}

>

@Entity
@Table(name = "child")
public class Child implements Serializable {

    @JoinColumn(name="parent_name")
    private Parent parent;

    public Parent getParent() {
        return parent;
    }

    public void setParent(Parent parent) {
        this.parent = parent;
    }

}

当我使用 session.save(parent) 时,它将父项和子项保存在数据库中,但子表中父标识符的列将保持为空。那么问题是什么?

4

2 回答 2

0

在子实体上试试这个:

 @ManyToOne(targetEntity = Parent.class)

 @JoinColumn(name = "parent", nullable = false)
于 2013-06-25T12:13:24.490 回答
0

如果我将 OneToMany 声明为单向,则效果很好。

于 2013-06-26T11:39:49.567 回答