MapStruct处理Java实体的高级进阶使用

来源:互联网 发布:php完全自学手册出版地 编辑:程序博客网 时间:2024/06/07 02:42

摘要: MapStruct有很多的配置选项,除了使用target和source外,还有一些注解选项可以实现更高级的功能。

defaultValue

有时候,在转换过程中,可能因为空值或其他原因使得映射结果不正确,此时可以指定一个默认值,防止程序出错。

@Mappings( {
@Mapping(target = "age", source = "evage", defaultValue = "20")
})

expressions

可以通过表达式来构造一些简单的转化关系。虽然设计的时候想兼容很多语言,不过目前只能写Java代码。

@Mapperpublic interface SourceTargetMapper {    SourceTargetMapper INSTANCE = Mappers.getMapper( SourceTargetMapper.class );    @Mapping(target = "timeAndFormat",         expression = "java( new org.sample.TimeAndFormat( s.getTime(), s.getFormat() ) )")    Target sourceToTarget(Source s);}

这里用到演示了如何使用TimeAndFormat对timeformat操作,这里必须要指定需要使用的Java类的完整包名,不然编译的时候不知道你使用哪个Java类,会报错。

处理空值

MapStrut提供了方法去修改空值的情形。默认情况下,返回的是null.

  • 基本数据类型: boolean 返回false, int 返回0
  • 数组/集合:空的数组或集合返回
阅读全文
0 0