Hibernate/spring数据jpa中的单向一对多关联
我对Hibernate/spring数据jpa中的单向一对多关联,hibernate,spring-data-jpa,Hibernate,Spring Data Jpa,我对Hibernate/spring数据jpa不熟悉,我正在尝试实现一种单向的@OneToMany关系 我的父类如下所示: @Entity public class Parent { @Id @GeneratedValue private int id; @OneToMany(fetch = EAGER) @JoinColumn(name = "parent_id") private List<Child> children; }
Hibernate
/spring数据jpa
不熟悉,我正在尝试实现一种单向的@OneToMany
关系
我的父类如下所示:
@Entity
public class Parent {
@Id
@GeneratedValue
private int id;
@OneToMany(fetch = EAGER)
@JoinColumn(name = "parent_id")
private List<Child> children;
}
现在我要坚持一个新的孩子通过
Child newChild = new Child();
newChild.setName("child_1");
this.parentService.findParentByParentId(1).getChildren().add(newChild);
this.childService.saveChild(newChild);
但当我查看数据库时,子表中的外键未设置:
-----------------------------------------
| id | name | parent_id |
-----------------------------------------
| 1 | child_1 | NULL |
-----------------------------------------
对这里的问题有什么建议吗?谢谢 我已经查看了映射,它没有问题。我甚至还与一些我用来举办JPA研讨会的人进行了比较,而你的应该可以 我敢打赌,问题在于你开始交易的地方。事务应该在执行代码的方法中启动
Child newChild = new Child();
newChild.setName("child_1");
this.parentService.findParentByParentId(1).getChildren().add(newChild);
this.childService.saveChild(newChild);
否则JPA的工作单元将看不到您在父级中添加了子级
我强烈建议您阅读spring文档中解释此问题的部分,否则您将在绝望中度过数天,试图找出它不起作用的原因
Child newChild = new Child();
newChild.setName("child_1");
this.parentService.findParentByParentId(1).getChildren().add(newChild);
this.childService.saveChild(newChild);