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日

悬赏问题

  • ¥15 如何用Thoony写ESP32温湿度检测无源蜂鸣器报警代码?
  • ¥20 部件内部的CT图像数据集
  • ¥15 Visual studio调用动态库
  • ¥15 双目摄像头标定后的校准文件
  • ¥15 powerbi矩阵增加度量值后出现对应关系错乱
  • ¥30 频率分析法分析绘制奈奎斯特图、波特图
  • ¥15 弹出来一万个系统找不到指定的文件框框,怎么解决
  • ¥15 ADS生成的微带线为什么是蓝色空心的
  • ¥15 求一下解题思路,完全不懂
  • ¥15 tensorflow