Java中的BO <=> DTO映射器

5

我目前正在手动进行应用程序映射DTO到BO(反之亦然)。 然而,这种方法很笨拙。

是否有好的映射器可以在这两个表示之间进行转换?

我的要求如下:

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

感谢任何建议。


1
你试过这个吗? http://www.jdto.org/ - miguelcobain
3个回答

9

谢谢提供这些链接。我会检查这些实现。 - malejpavouk
3
以防有人需要。Spring 3 mapper似乎只是一个预览版。jdto的文档不够有说服力,无法尝试(似乎该框架不太灵活)。然后我尝试了Dozer和Orika。两种方式都很好用,Dozer还有XML配置,这是一个很大的优势,但它显著慢一些。所以我选择了Orika。 - malejpavouk

5

我知道这个帖子有点旧了,而且我相信@miguelcobain的回答非常好。

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

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

希望您会尝试一下。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接