美文网首页
解决mapstuct中date和LocalDateTime互转时

解决mapstuct中date和LocalDateTime互转时

作者: 旋转马达 | 来源:发表于2021-05-12 19:38 被阅读0次

    解决mapstuct中date和LocalDateTime互转时区错误的问题

    @Mapping(target = "taskCreateTime", expression = "java(LocalDateTime.ofInstant( 
    history.getTaskCreateTime().toInstant(), ZoneId.of( \"Asia/Shanghai\" ) ))")
    ApprovalHistory mapApprovalHistory(ProjectApprovalHistory history);
    

    expression表示你指定的属性(target)即将被设置的值,目前Java是唯一支持的表达式语言,
    Java()中是合法的Java表达式语句,可以执行之后计算出一个值,赋值给target,
    例如上面的语句,会让mapstruct生成如下代码

    ${MappingResult}.taskCreateTime( LocalDateTime.ofInstant( history.getTaskCreateTime().toInstant(), 
    ZoneId.of( "Asia/Shanghai" ) ) );
    

    就是把你要映射的对象的taskCreateTime设置为你提供的表达式。通过你提供的表达式自定义映射的过程

    相关文章

      网友评论

          本文标题:解决mapstuct中date和LocalDateTime互转时

          本文链接:https://www.haomeiwen.com/subject/whfzdltx.html