Java 如何使用SpringDataJPA存储库从2个表中进行查询?
我有两张表,分别是学生和老师,学生和老师之间有多对一的关系,教师ID作为外键 如果我想查询下面这样的内容,如何使用spring数据JPA repo方法Java 如何使用SpringDataJPA存储库从2个表中进行查询?,java,hibernate,spring-data,Java,Hibernate,Spring Data,我有两张表,分别是学生和老师,学生和老师之间有多对一的关系,教师ID作为外键 如果我想查询下面这样的内容,如何使用spring数据JPA repo方法 select * from Student S, Teacher T where T.teacherName = 'SACHIN' and S.teacherId = T.teacherId 注意:这里我只想使用StudentRepository进行查询,它是使用与TeacherHibernateMapping类有关系的Student
select * from Student S, Teacher T
where T.teacherName = 'SACHIN' and S.teacherId = T.teacherId
注意:这里我只想使用StudentRepository
进行查询,它是使用与TeacherHibernateMapping
类有关系的StudentHibernateMapping
类创建的
任何帮助都将不胜感激。有很多方法可以做到这一点,请阅读解释嵌套属性使用的惯例,或者对于更复杂的查询,请使用。StudentRepository上将有一个存储库方法
List<Student> findByTeacher_TeacherId(String teacherId);
老师的课是
@Entity
Class Teacher {
@Id
private String teacherId;
}
在此,您需要了解的关键是:
findBy+(带大写首字母的学生类的外键成员)+下划线+带大写首字母的教师类的数据成员+(字符串teacherId)
这将为您提供一个属于该教师的学生列表,关于@prateek singh的实体,您还可以通过外部实体定义一个没有id的查询
List findbytacher(教师)代码>谢谢@zoran。特别是,我只想了解是否支持类似于在where子句中组合两个表的等价项,例如,findbytacheridandstudentid
。不过,我知道它可以与NativeSQl一起使用。这对我也适用,还有Prateek Singh提供的一个。很好的解决方案。我想知道这种方法是否有文档记录。到目前为止我还没找到。嗨,凉州,给你。。我们甚至不需要在方法中添加下划线。。例如:List findByTeacherTeacherId(字符串teacherId)代码>这也会起作用。
@Entity
Class Teacher {
@Id
private String teacherId;
}