繁体   English   中英

生成外键字段的JPA查询

[英]Generate JPA query for foreign key field

我正在尝试使用教师ID获取学生列表,这是使用@JoinColumn生成的Student表中的外键,但有错误。

Student.java类的字段关系:

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "teacher_id", nullable=false)
private Student student;

Teacher.java类的字段关系:

@OneToMany(
        mappedBy = "student",
        cascade = CascadeType.ALL,
        orphanRemoval = true
)
private List<Student> StudentsList = new ArrayList<>();

StudentResource.java

@GetMapping("/student/details/{teacherId}")
@Timed
public List<Student> getStudentDetails(@PathVariable Long teacherId) {
    log.debug("REST request to get Student details: {}", teacherId);
    List<Student> studentDetails= studentRepository.findByTeacherID(teacherId);
    return studentDetails;
}

StudentRepository.java

List<Student> findByTeacherID(Long teacherId);

有没有一种方法可以直接映射字段而不是整个对象?

有没有一种方法可以直接映射字段而不是整个对象?

假设Student的代码看起来像人们所期望的*,而不是您发布的代码,这应该可以工作:

@Query("select s.id from Student s where s.teacher.id = :id") 
List<Long> findByTeacherId(Long id);

*Student有一个属性teacher引用的Teacher和一个名为id属性id类型的Long

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM