jpa多对多查询所有
时间: 2023-12-06 17:35:35 浏览: 33
以下是使用Spring Data JPA进行多对多查询的示例代码:
假设我们有两个实体类:Student和Course,它们之间是多对多的关系。我们需要查询所有学生所选的所有课程。
首先,我们需要在Student实体类中添加一个属性courses,用于表示学生所选的所有课程:
```java
@Entity
public class Student {
@Id
private Long id;
private String name;
@ManyToMany
@JoinTable(
name = "student_course",
joinColumns = @JoinColumn(name = "student_id"),
inverseJoinColumns = @JoinColumn(name = "course_id"))
private List<Course> courses;
// 省略getter和setter
}
```
然后,在Course实体类中添加一个属性students,用于表示选择该课程的所有学生:
```java
@Entity
public class Course {
@Id
private Long id;
private String name;
@ManyToMany(mappedBy = "courses")
private List<Student> students;
// 省略getter和setter
}
```
接下来,我们可以在StudentRepository中添加一个方法,用于查询所有学生所选的所有课程:
```java
public interface StudentRepository extends JpaRepository<Student, Long> {
@Query("select s.courses from Student s")
List<Course> findAllCourses();
}
```
最后,我们可以在代码中调用该方法来查询所有学生所选的所有课程:
```java
List<Course> courses = studentRepository.findAllCourses();
```