如果您使用JPA或其他类型的持久性,您可能有办法保存通过ajax发送到客户端的记录。
编辑:界面是用GWT完成的,所以所有的ajax调用都是经典的java方法(转换为等价的javascript)
让我们把类Person作为数据库中的实体。
人有四个字段:name, birthday, id, email
当您通过ajax从服务器加载某人时,通常会向客户端发送一个Person对象。
在人物编辑器中,显示姓名,生日和电子邮件。编辑Person对象时,您可能希望显示id。
有两种情况:
当您将刚刚编辑的数据发送到服务器时,您的进展方式是什么?
我看到了几种方法:
总结一下,您有以下方法签名之一(仅适用于编辑案例):
Person savePerson(Person person);
Person savePerson(String id, String email);
我看到每种方法的利弊。例如,第一个允许快速更改Person模型而不修改所有savePerson调用。但是它比第二种方法更难以理解什么是真正保存的。
我不知道什么是最好的,如果你知道另一种方法。那么,你好吗?
答案 0 :(得分:1)
使用域对象进行数据传输总是很好。在GWT中,您必须定义接口并标记Rpc BeanProxies。作为项目演变的一部分,您需要向对象添加其他字段。如果你选择使用数据属性而不是对象的接口,你将不断更改它们,方法签名变得笨拙和不可读。
但是,某些人要求将持久域实体与业务域分开。在这种情况下,可以使用属性复制(apache commons-bean utils)。