2017-06-21 49 views
1

两个映射方法,我创造了这个映射方法:如何创建具有不同anotations

public abstract User map(UserDTO user); 

    @Mapping(source = "user.roles", target = "rolesIds") 
    public abstract UserDTO mapWithRoles(User user, boolean roles); 

正如你可以看到这两种方法都导致错误相同的签名,当涉及到其他实体的隐式映射。我现在通过将“角色”参数添加到第二种方法来解决这个问题,而第二种方法只是为了制作不同的方法签名。

事情是我有两个仓库的方法来获取用户,一个有权限,一个没有他们,我需要将加载的权限映射到DTO的permissionIds。

我该如何制作两种映射方法,这些方法在切片上有所不同,但签名相同?

回答

0

根据哪种方法应该是您的默认设置,您应该使用@Named或自定义@Qualifier注释其中之一。如果是这种情况,将不考虑带注释的方法,只有在明确使用@Mapper#qualifiedBy@Mapper#qualifiedByName时才会考虑它。

欲了解更多信息,请参阅参考文档here

相关问题