栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如果Dto使用MapStruct具有ID,则将dto映射到从数据库检索到的实体

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如果Dto使用MapStruct具有ID,则将dto映射到从数据库检索到的实体

我按照评论中Gunnar的建议解决了我的问题。

我移至MapStruct
1.2.0.Beta1
并创建了一个UserMapperResolver,如下所示

@Componentpublic class UserMapperResolver {    @Autowired    private UserRepository userRepository;    @ObjectFactory    public User resolve(baseUserDto dto, @TargetType Class<User> type) {        return dto != null && dto.getId() != null ? userRepository.findOne(dto.getId()) : new User();    }}

然后在UserMapper中使用它:

@Mapper(uses = { UserMapperResolver.class })public interface baseUserMapper {    baseUserDto map(User user);    User map(baseUserDto baseUser);}

现在生成的代码是:

@Override    public User map(baseUserDto baseUser) {        if ( baseUser == null ) { return null;        }        User user = userMapperResolver.resolve( baseUser, User.class );        user.setId( baseUser.getId() );        user.setSocialMediaProvider( baseUser.getSocialMediaProvider() );...}

效果很好 !



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号