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

标签 java hibernate spring-data

我有 2 个表,分别是 Student 和 Teacher,Student 与 Teacher 之间存在多对一关系,teacherId 作为外键。

如果我想查询类似下面的内容,我如何以某种方式使用 spring data JPA repo 方法 - findByTeacherName

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

注意:这里我只想使用 StudentRepository 进行查询,它是使用 StudentHibernateMapping 类创建的,该类与 TeacherHibernateMapping 类有关系

任何帮助将不胜感激。

最佳答案

StudentRepository 上会有一个repository 方法

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 + (学生类外键成员首字母大写) + 下划线 +教师类数据成员首字母大写 +(String teacherId) ;

这会给你一个属于那个老师的学生列表

关于java - 如何使用 Spring Data JPA Repository 从 2 个表中查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26938048/

相关文章:

java - Hibernate @OneToMany 来自更新 [0] 的意外行数;实际行数 : 0; expected: 1

java - “多对一”属性类型不应为 'Persistence Entity'

mongodb - spring-data-mongodb 中没有 "_class"属性的对象的默认实现映射

java - Java ThreadPool中ThreadLocal值是否被GC?

java - 在后台运行的程序(JAVA)

java - 如何捕获Hibernate DB连接错误异常?

java - 连接到两个数据库时出现 LazyInitializationException

java - Spring data - 域对象继承和泛型方法

java - JAI 供应商名称 == null

java - 内置麦克风通话