簡體   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