gpt4 book ai didi

java - ModelMapper 混淆了不同的属性

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:51 25 4
gpt4 key购买 nike

我有一个扩展 Person 对象的 Student 对象。

public abstract class Person implements IIdentifiable {
private String contactNumber;
// other properties
public String getContactNumber() {
return contactNumber;
}

public void setContactNumber(String contactNumber) {
this.contactNumber = contactNumber;
}
}

public class Student extends Person {
private String studentNumber;
//Other properties
public String getStudentNumber() {
return studentNumber;
}

public void setStudentNumber(String studentNumber) {
this.studentNumber = studentNumber;
}
}

Student 有一个属性studentNumber,person 有一个属性contactNumber。当我将 Student 对象映射到 StudentDto 时,它会对给定的属性感到困惑。

public class StudentDto{
private String studentNumber;
public String getStudentNumber() {
return studentNumber;
}

public void setStudentNumber(String studentNumber) {
this.studentNumber = studentNumber;
}
}

这只发生在某些场合。我想知道是什么原因

1) The destination property com.cinglevue.veip.web.dto.timetable.StudentDto.setStudentNumber() matches multiple source property hierarchies:
com.cinglevue.veip.domain.core.student.StudentProfile.getStudent()/com.cinglevue.veip.domain.core.Person.getContactNumber()
com.cinglevue.veip.domain.core.student.StudentProfile.getStudent()/com.cinglevue.veip.domain.core.Student.getStudentNumber()

最佳答案

1.您可以更改 MatchingStrategies,使用:

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

PS: modelmapper 隐含地使用了MatchingStrategies.STANDARD

但它要求源端和目标端的属性名称标记相互精确匹配。

2.告诉 ModelMapper 在发现多个源属性层次结构时忽略映射:

modelMapper.getConfiguration().setAmbiguityIgnored(true);

关于java - ModelMapper 混淆了不同的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36215693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com