ModelMapper:解决这个问题的最佳方法是什么

时间:2015-04-13 18:15:46

标签: java modelmapper

我的ModelMapper库存在问题。

实体类:

abstract class AbstractEntity {
    Long id;
}
class User extends AbstractEntity {
    String login;
    Business business;
}
class Business extends AbstractEntity {
    String name;
}

Dto课程:

class NewUser {
    String login;
    Long businessId;
}

我如何模拟问题:

public class Main {
    public static void main(String[] args) {
        NewUser newUser = new NewUser();
        newUser.setLogin("jhonatan.serafim");
        newUser.setBusinessId(1L);

        ModelMapper mapper = new ModelMapper();
        User user = mapper.map(newUser, User.class);

        System.out.println(user.getId());
        System.out.println(user.getLogin());
        System.out.println(user.getBusiness().getId());
    }
}

预期:

  

     

jhonatan.serafim

     

1

实际值:

  

1

     

jhonatan.serafim

     

1

解决这个问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以使用严格匹配策略:

mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);

但在这种情况下user.getBusiness().getId()会失败,因为NewUser没有business字段。

有关匹配策略的更多信息:ModelMapper – Configuration

答案 1 :(得分:-1)

为什么期望id1?您未在1中将其设置为NewUser。将它设置在那里它应该按预期工作。