2017-06-21 43 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