我的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
解决这个问题的最佳方法是什么?
答案 0 :(得分:1)
您可以使用严格匹配策略:
mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
但在这种情况下user.getBusiness().getId()
会失败,因为NewUser
没有business
字段。
有关匹配策略的更多信息:ModelMapper – Configuration
答案 1 :(得分:-1)
为什么期望id
为1
?您未在1
中将其设置为NewUser
。将它设置在那里它应该按预期工作。