繁体   English   中英

如何使用Spring Data JPA Repository从2个表中查询?

[英]How to use Spring Data JPA Repository to query from 2 tables?

我有2个表说学生和老师,并说学生与老师有多对一的关系,并说,teacherId作为外键。

我怎样才能以某种方式使用spring数据JPA repo方法 - findByTeacherName ,如果我想查询类似下面的内容,

select * from Student S, Teacher T 
    where T.teacherName = 'SACHIN' and S.teacherId = T.teacherId

注:在这里,我只用想查询StudentRepository ,这是使用创建StudentHibernateMapping有关系类TeacherHibernateMapping

任何帮助将不胜感激。

StudentRepository上将有一个存储库方法

List<Student> findByTeacher_TeacherId(String teacherId);

你的entityClass应该像..

@Entity
Class Student {
  @Id
  String studentId;
  @ManyToOne
  private Teacher teacher;
}

和老师班将..

@Entity
Class Teacher {
  @Id
  private String teacherId;
}

在这里,您需要知道的关键是:

findBy +(学生班的外键成员, 第一个字母为Upper )+下划线+教师班的数据成员,第一个字母为UpperCase +(String teacherId);

这将为您提供属于该教师的学生列表

关于@ prateek-singh的实体,也应该可以简单地通过外部实体来定义没有id的查询。

List<Student> findByTeacher(Teacher teacher);

有很多方法可以做到这一点,阅读方法命名的惯例,解释嵌套属性的使用,或更复杂的查询使用@Query注释

暂无
暂无

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

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