开发者社区 问答 正文

如何在Spring Boot中使用Dtos修复具有关系的类的输出?

我的课

public class Teacher

与学生有ManyToMany关系:

public class Student

当我返回老师时,我只需要他们的学生证,而不是有关他们学生的完整信息。

我们有两个Dto(DataTransferObject):带有一些变量的StudentDto和TeacherDto。

我该怎么解决这个问题?

我也希望学生仅返回老师的姓名或ID。相反,他们返回完整的dto教师列表。

谢谢。

问题来源:Stack Overflow

展开
收起
montos 2020-03-27 09:48:38 424 分享 版权
1 条回答
写回答
取消 提交回答
  • 在您中,TeacherDto您不应该具有StudentDtos的列表,而应该具有of 的列表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,则有很多库可帮助您自动在它们之间进行映射。

    回答来源:Stack Overflow

    2020-03-27 09:52:42
    赞同 展开评论