Model view controller 在映射到无状态gui模型中处理持久ID

Model view controller 在映射到无状态gui模型中处理持久ID,model-view-controller,gwt,persistence,stateless,Model View Controller,Gwt,Persistence,Stateless,我手头有一个GWT应用程序,它带有一个为显示目的而优化的客户端GUI模型。GUI表示从SOAP服务检索的业务对象树。树中的每个对象都携带一个UID,在将更改持久化到树时,我需要将其传递回服务 应用程序应该是无状态的 GUI模型与我收到的树有很大不同,即GUI模型中的实体与树中的实体不以1:1的比例映射 到目前为止,我只有一个映射策略,允许我将GUI模型类型映射到服务模型类型,但我缺少实例的映射策略:当我使用UID4711和0815从服务检索类型a的两个实例[1]和[2],并将它们映射到GUI模型

我手头有一个GWT应用程序,它带有一个为显示目的而优化的客户端GUI模型。GUI表示从SOAP服务检索的业务对象树。树中的每个对象都携带一个UID,在将更改持久化到树时,我需要将其传递回服务

应用程序应该是无状态的

GUI模型与我收到的树有很大不同,即GUI模型中的实体与树中的实体不以1:1的比例映射

到目前为止,我只有一个映射策略,允许我将GUI模型类型映射到服务模型类型,但我缺少实例的映射策略:当我使用UID4711和0815从服务检索类型a的两个实例[1]和[2],并将它们映射到GUI模型中类型X、Y和Z的实例时,我能够将它们映射回类型A的两个实例,但不保留UID4711属于实例[1]和UID0815属于实例[2]的事实

如果应用程序要保持无状态,我想我需要一种方法来持久化这些UID及其与客户端GUI模型实体的关系。有没有一种模式或策略可以在不放弃GUI模型和服务模型之间有目的的不一致的情况下解决这个挑战


任何暗示都将不胜感激。提及相关的模式名称就足够了。提前谢谢

我很困惑——为什么“无状态”意味着“客户机无法知道ID或对其进行任何合理的映射”?如果没有1:1映射,是否至少有一个用于对象编组的明确可逆函数?对“无状态”对象的更改是否会导致不同数量/类型的持久化对象,并且这些更改是否可能清晰地映射回原始对象。按照这一思路继续下去,将旧的持久化对象吹走并构建新对象是否可以接受?(还有,什么是实例1和实例2?您只提到了类型A、X、Y、Z和两个UID)好的,我将尝试澄清:1)客户机(GUI模型)可以知道ID,我只是没有很好的设计思路如何做到这一点,而不必更改GUI模型,使其更类似于服务模型2)是的,GUI条目会导致创建新的持久化实体(这些实体最初不会携带ID)3)不,吹走旧的持久化对象实例是不可接受的。我必须建立一个在我的原始帖子中阐明的历史例子。你可以在你的问题中给出一些例子,说明映射类型的某些规则可能是什么样子的吗?例如,A是否始终映射到带有Y子级的X,或者B有时是W,有时是Y?C可以表示为带有可选同级U的Z吗?这看起来并不是一个GWT/mvc/持久性问题,但如果您能稍微充实一下,我会尝试给您一些想法。通过尽可能多地维护现有状态,向客户端添加更多内容实际上可能会有所帮助,但更详细地了解问题会有所帮助。第一个想法:访问者模式