我们拥有传统的Web服务架构。我现在很高兴使用EJB(EJB 3)进行新开发,我想避免使用DTO,因为它创建了3个并行层。如果我将hibernate对象直接发送给客户端,那么关系会变成什么样?创建一个分离的对象不会解决问题,因为关联的对象可能已经在其他地方被提取。序列化这样的hibernate对象将迫使整个图形被删除。您对复杂对象使用什么方法(DTO除外)?
答案 0 :(得分:2)
对于远程访问(远程EJB,Web服务等),我实际上更喜欢DTO。它们不包括任何(代理)主键,只包含业务键,并提供客户端视图,而实体是服务的私有,可以根据需要进行更改。
答案 1 :(得分:1)
您可以使用DDD聚合模式:http://dddcommunity.org/node/88,根据我的经验,它具有域模型+ DTO的好处,因为整体被视为一个单元。
通过我现在有使用EJB的奢侈我希望你的意思是EJB3 ...因为以前的版本使用起来非常痛苦