【发布时间】:2018-02-02 23:49:16
【问题描述】:
我计划存储多个表中的数据,这些表具有一对多的 JPA 关系。我正在创建从 JPARepository 扩展的存储库接口。我的问题是,如果我想在关系的多方面保存数据(在下面的场景中是 Tour),那么我应该使用 TourRepository 还是 PersonRespository?
类似地,为需要存储数据的每个 JPA 实体创建单独的存储库类是否理想?还是可以通过有限的存储库类实现将数据存储到数据库的更好方法?
@Entity
@Table(name="Person")
public class Person implements Serializable{
...
...
@OneToMany(mappedBy = "person")
private List<Tour> tours;
...
@Entity
@Table(name = "Tour")
public class Tour implements Serializable{
...
...
@ManyToOne
@JoinColumn(name = "PERSON_ID")
private Person person;
...
【问题讨论】:
-
在@oneToMany 上添加级联类型,并使用人员将两者保存到数据库中
-
正如 Gusti Arya 所说,在这里添加适当的级联类型会有所帮助。但是,是否创建存储库取决于更高级的东西:如果您的
Tour是可以单独管理的东西,那么您应该有自己的存储库。只有在不为父子关系创建子存储库的情况下,我才会明确避免创建存储库,其中父是聚合根(在域驱动设计术语中)。
标签: spring jpa spring-data spring-data-jpa