Mik*_*key 9 oop grails pojo dto grails-orm
我的一些域类变得相当丰富:它们实现了一个有趣的可比较,可能有加号,减号,乘法和div,许多都有一些方便的getter来调用服务并确定复杂的东西.最重要的是,他们拥有合适的属性.我正在将这两者用于正常的"数据库事务",并且在我只想要一个具有所有这些方法但可能不想保存它的对象的时候.
我的队友确信这非常糟糕,并建议我应该使用DTO(数据传输对象),根据我的理解,这将是一个POGO/POJO,其中一个域类'代码复制/粘贴.这似乎真的不干,我看不出有什么好处.将域对象不时用作常规对象有什么问题吗?我错过了DTO的观点吗?
Grails域类有点错误,因为应用程序的域层通常由持久类和非持久类组成.但是Grails域类总是持久的.您可以拥有非持久域(在传统意义上)类,但它们必须位于src/groovy或src/java中.这可能令人沮丧,因为域应用程序在应用程序中分为两个部分.我们已经收到了非持久域类的请求,例如类似static persistent = false或类似的东西,但它还没有实现.
我想如果你想利用域类的非持久性特性(例如验证,依赖注入等),那么可以使用一些可以由数据库支持但不支持的类.您只需要在代码中记录它或具有某种约定,例如特殊的包结构或命名约定.如果你从来没有调用GORM方法,如save(),list(),findAllByFoo()等等,那么将不会有任何的数据库访问.
就DTO而言,它们可以是非干的,但有一个插件可以提供帮助 - 请参阅http://grails.org/plugin/dto.它有一段时间没有更新,但我很确定它仍然有效.它有一个很好的功能,它将使用语法从持久域类实例创建DTO实例domainObj as DTO.您确实需要在类之间保持同步更改,但是通过脚本自动生成初始DTO.
| 归档时间: |
|
| 查看次数: |
2868 次 |
| 最近记录: |