2

我有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

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

4

2 回答 2

1

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

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

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

更多关于匹配策略:ModelMapper – 配置

于 2015-04-13T18:47:49.487 回答
-1

你为什么会期望id1?您没有将其设置1NewUser. 将其设置在那里,它应该可以按预期工作。

于 2015-04-13T18:18:49.023 回答