我有关于Java自定义序列化的问题。我有一个对象图,并且想要配置从客户端到服务器的序列化根对象的位置。序列化对象图的一部分
让我们通过给出一个示例场景来明确一点。我有型
的类公司
员工(摘要)
Manager将员工
秘书延伸员工
分析师延长员工
项目
这里有关系:
公司(1) - - (n)员工
经理(1)---(n)项目
分析员(1)---(n)项目
想象一下,我在客户端,我想创建一个新公司,将其分配给10名员工(新的或现有的),并将此新公司发送给服务器。在这种情况下我期望的是将公司和所有绑定员工序列化到服务器端,因为我将把关系保存在数据库中。到目前为止没有问题,因为默认的Java序列化机制将整个对象图序列化,不包括静态或瞬态的字段。
我的目标是关于以下情况。想象一下,我将一家公司及其1000名员工从服务器加载到客户端。现在我只想重命名公司的名称(或其他字段,直接属于公司)并更新此记录。这一次,我只想将公司对象发送到服务器端,而不是将所有员工列表(我只是更新名称,员工在这个用例中不相关)。我的目标还包括说,转移公司和员工而不是项目关系的可配置性,您必须在那里停止。
您是否知道以通用方式实现此操作的可能性,而无需为每个实体对象实现writeObject,readObject?你的建议是什么?
我真的很感激你的答案。我愿意接受任何想法,并准备在出现问题时回答您的问题。
Bozho您好,感谢您的快速答复。我认为DTO解决方案是一个很好的解决方案。这是为了节省维护代码的时间,DTO和DO的单独重复而设计的。我们目前正处于这样一个阶段,如果没有DTO整合,问题必须解决。否则需要很多时间,因为我们在客户端有一个缓存,必须根据DTOs这次更新等。 – Max 2010-03-30 12:28:53