【发布时间】:2014-11-06 14:59:56
【问题描述】:
我们使用的是 ORM 框架(Hibernate)。我们的模型包含许多实体。我们使用带有基于 angularJS 的客户端的 spring 框架。整个通信是通过 REST 服务基于 ajax 的。我们主要在客户端和服务器之间使用 DTO 对象,并采用 Jackson 编组(json->Pojo)。该网络应用程序既适用于移动设备,也适用于 PC(主要是 PC)。
我们现在正在讨论更新实体的流程(客户端 - 服务器)。乍一看,这看起来很简单:
- 客户端向服务器发送更新请求
- 服务器执行更新并以确认消息进行响应。
在更详细地讨论了流程之后,我们提出了一些问题:
-
客户端究竟应该向服务器发送什么?
- 是否应该发送整个实体对象?
- 是否应该发送 (fieldName, NewValue) 的地图?
- 如果客户端确实发送了地图 - 客户端如何知道字段名称?我们需要就预先定义的名称达成一致吗?
- 如果我们同意预定义的名称 - 服务器如何解释它们?服务器是否保留了 fieldName 的映射 -> 用于更新的实际 DB fieldName?
-
服务器如何执行更新?
- 服务器是否应该为每个更改的不同字段执行不同的更新脚本?
- 服务器是否应该根据客户端请求执行单个巨大的更新脚本?
我们一直在寻找关于这个简单概念的文章\帖子,但找不到任何参考资料。
【问题讨论】:
-
那么,您要找的答案是哪一个?
标签: java spring hibernate jpa design-patterns