我需要将域对象(DO)存储到数据库中。
最简单的方法是在 DO 定义中添加一些 JPA 注释,如@Entity
,等@SequenceGenerator
,@Table
但我不想将 DO 与其他概念(如持久化)混为一谈。所以我使用单独的 DTO 对象并将注释放在这里。
由于我是一名出色的领域驱动设计追随者,因此我不直接与 DB 互连并使用Repository
模式。如果将来我从 RDBMS 迁移到例如 NoSQL,所有更改都将仅在 Repository 中完成,我的 DO 将保持不变。
因此流序列为
DO -> 存储库 - 转换 -> DTO -> DB
由于我的 DO 有很多字段,因此转换步骤非常繁琐,同时也非常简单:从 DO 中获取 fieldA 并将其放入 DTO 中的 fieldA' 中(在某些情况下进行简单的转换)。目前我在单独的Transformer
.
执行此转换步骤的其他(更好?)方法是什么?
更新