BO中的<=> DTO映射器

mal*_*ouk 4 java reflection dto mapper

我目前在我的应用程序中手动将DTO转换为BO(反之亦然).然而,这种方法很笨拙.

这两个表示之间有没有好的映射器?

我的要求如下:

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

谢谢你的任何建议.

mig*_*ain 8

关于对象映射,我建议

另外,请参阅此SO答案.它有一个或多或少完整的Java Object映射器列表:https://stackoverflow.com/a/1432956/1137735

我建议的3对我来说似乎更有吸引力.我认为他们都符合你要求的要求.

  • 以防有人需要它.Spring 3 mapper似乎只是一个预览版.jdto的文档没有足够的说服力来尝试它(似乎框架不是很灵活).比我尝试过Dozer和Orika.两者都运行良好,Dozer也有XML confix,这是一个很大的优势,但它明显更慢.所以我选择了Orika. (3认同)

sle*_*sle 5

我知道这个帖子有点老了,我很确定@miguelcobain的回答很棒.

Personnaly,我建议使用Orika作为运行时系统.它很强大并且在运行时使用字节代码生成,因此映射由生成的代码处理,而不是始终使用Reflection API.其他列出的库始终使用复杂配置而不是约定.

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

希望你试一试.