我如何在 spring 引导中使用 Dtos 修复 类 的输出与关系?
How can i fix output of Classes with relationship using Dtos in spring boot?
我的class
public class Teacher
与学生有多对多关系:
public class Student
当我 return 老师我只想要他们的学生 ID,而不是关于他们学生的完整信息。
我们有两个 Dto (DataTransferObject):带有一些变量的 StudentDto 和 TeacherDto。
我该怎么做才能解决这个问题?
我也希望学生 return 只需要教师的姓名或 ID。相反,他们 return 完整的 dto 教师名单。
谢谢。
在您的 TeacherDto
中,您不应该有 StudentDto
的列表,而是 Integer
的列表(如果 Integer
是 id 类型)。比你应该实现一些映射逻辑,例如在构造函数中,像这样:
public class TeacherDto {
private final Set<Integer> studentIds;
public TeacherDto(Teacher teacher) {
this.studentIds = teacher.getStudents().stream()
.map(Student::getId)
.collect(Collectors.toSet());
}
public Set<Integer> getStudentIds() {
return studentIds;
}
}
如果您有许多不同的 DTO,a lot of libraries 可以帮助您自动进行它们之间的映射。
我的class
public class Teacher
与学生有多对多关系:
public class Student
当我 return 老师我只想要他们的学生 ID,而不是关于他们学生的完整信息。
我们有两个 Dto (DataTransferObject):带有一些变量的 StudentDto 和 TeacherDto。
我该怎么做才能解决这个问题?
我也希望学生 return 只需要教师的姓名或 ID。相反,他们 return 完整的 dto 教师名单。
谢谢。
在您的 TeacherDto
中,您不应该有 StudentDto
的列表,而是 Integer
的列表(如果 Integer
是 id 类型)。比你应该实现一些映射逻辑,例如在构造函数中,像这样:
public class TeacherDto {
private final Set<Integer> studentIds;
public TeacherDto(Teacher teacher) {
this.studentIds = teacher.getStudents().stream()
.map(Student::getId)
.collect(Collectors.toSet());
}
public Set<Integer> getStudentIds() {
return studentIds;
}
}
如果您有许多不同的 DTO,a lot of libraries 可以帮助您自动进行它们之间的映射。