5

我目前正在我的应用程序中手动将 DTO 映射到 BO(反之亦然)。然而,这种方法既笨拙又笨拙。

这两种表示之间有什么好的映射器吗?

我的要求如下:

  • 应支持将 JPA 代理转换为标识符(DTO 不应直接链接到其他 DTO)。或者这个功能应该很容易实现
  • 应该基于注释,约定优于配置
  • 软标准:应该允许将多个 DTO 映射到一个实体(反之亦然)

感谢您的任何建议。

4

3 回答 3

9

关于对象映射我会推荐

另外,请参阅this SO answer。它有一个或多或少完整的 Java 对象映射器列表:https ://stackoverflow.com/a/1432956/1137735

我建议的 3 似乎对我更有吸引力。我认为它们都满足您提出的要求。

于 2013-01-25T14:30:47.137 回答
5

好吧,我知道这个帖子有点老了,我很确定@miguelcobain 的答案很棒。

个人而言,我建议将Orika用于运行时系统。它很强大,并且在运行时使用字节码生成,因此映射由生成的代码处理,而不是总是使用反射 API。其他列出的库总是使用复杂的配置而不是约定。

我认为第二种解决方案和更好的解决方案是使用Selma。这个简短的库为您完成了这项工作,但它不是在运行时处理映射,而是在编译时使用注释处理器生成映射代码。因此编译器会引发映射错误,这是重构证明,您将能够看到生成的代码。

希望你试一试。

于 2014-05-21T08:47:25.963 回答
1

我建议您尝试JMapper 框架
它是一个 java bean 到 java bean 的映射器,允许您使用注释和/或 XML 动态地执行数据传递。使用 JMapper,您可以:
创建和丰富目标对象
将特定逻辑应用于映射
自动管理 XML 文件
实现 1 到 N 和 N 到 1 关系
实现显式转换
应用继承的配置

于 2013-05-15T15:57:38.817 回答