Spring Data JPA リポジトリを使用して 2 つのテーブルからクエリを実行するにはどうすればよいでしょうか? 質問する

Spring Data JPA リポジトリを使用して 2 つのテーブルからクエリを実行するにはどうすればよいでしょうか? 質問する

Student と Teacher という 2 つのテーブルがあり、Student は Teacher と多対 1 の関係を持ち、teacherId が外部キーとして機能します。

Spring Data JPAリポジトリメソッドをどのように使用すればいいでしょうか?たとえばfindByTeacherName、以下のようなクエリを実行したい場合、

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

注: ここでは、クラスと関係のあるクラスStudentRepositoryを使用して作成された のみを使用してクエリを実行します。StudentHibernateMappingTeacherHibernateMapping

どのような助けでも大歓迎です。

ベストアンサー1

StudentRepositoryにリポジトリメソッドがあります

List<Student> findByTeacher_TeacherId(String teacherId);

あなたのエンティティクラスは次のようになります。

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

そして先生のクラスは…

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

ここで知っておくべき重要なことは次のとおりです。

findBy + (学生クラスの外部キーメンバー最初の文字が大文字) + アンダースコア + Teacher Class のデータ メンバー最初の文字が大文字+(文字列教師ID);

これにより、その教師に属する生徒のリストが表示されます

おすすめ記事