0

在 Hibernate manytoone 和双向关系中,在 childentity 表中,行列表被插入,但 parent_id 没有被插入。我使用的代码如下所示。

@Entity
@Table(name = "parent")
public class ParentEntity
{
...
@Id
@Column(name = "id")
private Long id;
...
@OneToMany(mappedBy = "parent", fetch = FetchType.EAGER, cascade=CascadeType.ALL)
private List<ChildEntity> children;
...
}

@Entity
@Table(name = "child")
public class ChildEntity
{
...
@Id
@Column(name = "child_id")
private Long id;
...
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "parent_id", nullable=false)
private ParentEntity parent;
...

}

在这种情况下,我收到一个错误,在 DAO 类中 parent_id 不应该为空。

如果我删除 nullable = false 则子实体将插入数据库,但没有 parent_id。

4

1 回答 1

0

对于包括 Hibernate 在内的所有 JPA 提供程序,应用程序负责在关系的两端设置正确的引用。在你的情况下,它应该看起来像这样:

parent.getChildren().add(child);
child.setParent(parent);
于 2013-10-16T07:16:37.753 回答