使用RESTful API在Web环境中初始化多个到多个

时间:2015-04-11 10:02:02

标签: java json spring-mvc jpa many-to-many

正如To initialize or not initialize JPA relationship mappings?所说,初始化JPA映射关系是一种很好的做法。

但是在Web架构(Spring MVC)中,实体将作为JSON发送,通常使用RESTfull API,序列化中将省略关系,并将使用其路径将其提取到服务器(即employees / [ID] /项目)。

如果我们有:

class Employee {
    @ManyToMany //Employee owner of relation 
    protected List<Project> projects=new ArrayList<Project>(0);
 }

如果从客户端我们只想更新 Employee 名称,客户端将JSON发送到服务器(HTTP PUT),它将被反序列化并且 employee.projects 将被初始化为空集合。当EntityManager保存时,它将更新属性(右)和项目员工是业主方)删除现有项目。

另一种方法是使用DIY merge pattern&#34;我们不是调用EntityManager.merge而是调用EntityManager.find来查找现有实体并自己复制状态&#34; 。此解决方法需要更新时的特定实体代码。

解决问题的最佳方法是什么?

0 个答案:

没有答案