在Grails中有一个插件 compile“:dto:0.2.4”将域对象传输到DTO。使用该插件时,DTO将创建为Java类。
例如,如果存在像Person.groovy这样的Domain Class,那么DTO就像PersonDTO.java一样被创建
这种行为的意图是什么?任何评论将不胜感激。
答案 0 :(得分:2)
Peter Ledbrook在this blog post回答你的问题。
尽管如此,DTO仍然坚持(原谅双关语)。什么时候想 通过RPC序列化数据,它们通常是为数不多的选项之一 可以使用。 GWT-RPC就是一个很好的例子,其原因就在于此 Grails DTO插件。 Gilead允许您透明地序列化 Hibernate域实例,但这只适用于域类 可以由客户端加载。由于GORM域类通常是 Groovy,这不是GWT的选择。您典型的Grails域名 课程还包括一堆客户很难去的东西 感兴趣,比如自定义映射。
因此,基本上它可以是域类的轻量级版本,只能使用客户端所需的数据。
不是Grails的情况,它有静态方法来进行数据库查询,但是如果你有DAO类,DTO模式可以用来确保不允许你的客户端执行触摸的方法数据库。这可以很好地确保在表示层中不恰当地使用此对象。