开发者社区> 问答> 正文

如何在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 396 0
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
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多