如何使用@DBRef 插入 POJO?

问题描述 投票:0回答:0

我有两个 POJO,

teacher
course
像这样:

@Data
@Builder
@Document("teacher")
public class Teacher {
    @Id
    private String id;
    private String name;
}
@Data
@Builder
@Document("course")
public class Course {
    @Id
    private String id;
    private String course;

    @DBRef
    private Teacher teacher;
}

CourseVO

public record CourseVO(
        String course,
        String teacherId
) {
    public Course toCourse() {
        return Course.builder()
                .course(course)
                .teacher(Teacher.builder()
                        .id(teacherId)
                        .build())
                .build();
    }
}

当我插入这样的课程时:

// teacher{id="64058bc20cf9434623256b02", name="john"}
// courseVO{course="math", teacherId="64058bc20cf9434623256b02"}

mongoTemplate.insert(courseVO.toCourse());

它还我:

{
  "id": "640d65c7c6d4f733da080802",
  "course": "math",
  "teacher": {
    "id": "64058bc20cf9434623256b02",
    "name": null
  }
}

为什么

teacher.name
为空?我需要它返回我老师的名字,我该怎么办?

请帮助我,谢谢!

java mongodb spring-boot spring-data-jpa spring-data-mongodb
© www.soinside.com 2019 - 2024. All rights reserved.