我最近开始在我的应用程序中使用spring-data-rest。我有以下JPA实体:
@Entity
public class Super {
@Id
private long id;
@JoinTable
@OneToMany(cascade = CascadeType.ALL)
private List<Child> children;
}
-----------------------------------------
@Entity
public class Super2 {
@Id
private long id;
@JoinTable
@OneToMany(cascade = CascadeType.ALL)
private List<Child> children;
}
-----------------------------------------
@Entity
public class Child {
@Id
private long id;
@Column
private String childMetadata;
}
我可以考虑保存Super
或Super2
的新实例的两种方法:
@RestResource
课程公开Child
- &gt;在创建Child
或Super
- &gt;的实例之前创建Super2
的所有实例在Child
或Super
的有效负载中传递所有Super2
个实例的网址。Child
或Super
的有效负载中传递Super2
的详细信息,而不会@RestResource
Child
类,CascadeType.ALL
将会关心创建Child
个实例。这两种方法都有一些优点:
Child
新Super
的网址向Super2
或POST
添加新的Child
个对象http://<server>:<port>/super/1/children
。但是如果我使用这种方法,我肯定会失去数据库的级联功能。Child
实例的灵活性。有没有我完全错过的东西?我想要一种方法来使用数据库的级联功能,而不会失去动态添加新子项的灵活性。
感谢您的帮助。 :)