Java实体映射工具-MapStruct 的坑
经过初步的MapStruct试用,大概总结一下,目前的MapStruct版本(1.4.0.CR1)最佳的试用场景还是对于简单对象的映射比较方便,对于涉及到业务逻辑代码的部分并不是很推荐使用,等待后期的完善。
坑
:还原一个在实际中遇到的问题(以下是写的简单示例)
假设有三个实体,他们之间的关系如下:
- Person
- User
- UserInfo
映射关系如下
- Mapping
目前的这种情况下编译器可以成功编译
但是
异常Mapping
当我们只想建立入参user中的name属性和Person中的user的name关系的时候就会报错
1 | Error:(23, 12) java: Several possible source properties for target property "name". |
直译就是目标属性“name”可能有
多个源属性
,也就是说此时编译的时候虚拟机找不到source中的name对应Person中的哪一个name(Person中存在name属性,Person中的User也存在该属性)
下面设置多个实验组对照
可以看到实体中存在相同属性名的时候优先最外层的属性获取映射关系,如果要在这种情况下只对Person中User的name设置映射关系,就需要对Person中的name忽略掉
如图:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 雅!
评论