如何使用不同的anotations创建两个映射方法

时间:2017-06-21 08:20:36

标签: java mapping mapstruct

我创建了这种映射方法:

  public abstract User map(UserDTO user);

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

正如您所看到的,这两种方法具有相同的签名,这些签名在涉及其他实体中的隐式映射时会导致错误。我现在通过将“roles”参数添加到第二个方法来解决它,该方法仅用于制作不同的方法签名。

问题是我在存储库上有两个方法来获取用户,一个有权限,一个没有它们,我需要将加载的权限映射到DTO上的permissionIds。

如何制作两种不同的anotations但具有相同签名的映射方法?

1 个答案:

答案 0 :(得分:0)

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

有关详细信息,请参阅参考文档

中的here