snow0617 2022-02-17 13:39 采纳率: 100%
浏览 60
已结题

java 怎么通过配置的方法实现:不同实体对象的转换?(字段名称,类型,实体结构都不相同,,)

目前在做工号的数据的同步,从原系统把工号同步到本系统,但对接的项目有很多,不同的项目同步工号的入参实体类结构、字段名称、字段类型与本系统都不相同。
想通过一些配置化的方法把字段对应关系、实体对应关系通过一种方式映射封装解析成符合本系统的统一数据实体类型(应该会用到反射),这样统一了数据模型,之后就可以统一执行后边数据解析校验落表的过程,不用区分不同的系统去分开做不同的数据处理解析和校验了。
但因为字段名称,类型,甚至实体结构可能都完全不同,感觉实现起来很繁琐也很困难,已经百度了一些方法但觉得都不太可行,想问下大家有什么经验或者建议和更好的思路方法么?
例:

源数据sourceUser实体:
{
    "body":{
        "data":{
            "userId":"1100",
            "userName":"张三",
            "telPhone":"13450000000",
            "orgId":"123"
        }
    }
}
目标数据targetStaff实体:
{
    "staff":{
        "staffId":1100,
        "staffName":"张三",
        "tel":"13450000000",
        "orgId":"123"
    }
}

最终实现效果是想:提前将实体对应关系以及实体中的字段对应关系配置好(如sourceUser对应targetStaff实体,userId字段对应staffId字段,但id类型不一致需要转换成targetStaff的参数类型),代码通过这些配置信息,能够自动把sourceUser实体转换为targetStaff实体,也要考虑到字段类型不一致时如何统一成目标实体字段类型的问题。

  • 写回答

1条回答 默认 最新

  • 大鹏cool Java领域优质创作者 2022-02-17 13:59
    关注

    还真有这样的工具,mapstruct,官网

    有帮忙麻烦给个采纳哦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 已采纳回答 2月17日
  • 创建了问题 2月17日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改