【发布时间】:2019-06-08 10:41:16
【问题描述】:
我在数据库中只有一个名为 Student 的表。以下是我的代码中针对它的 jpa 实体:
@Entity
@Table(name = "student")
public class Student{
@Id
private Long id;
@Column
private String firstName;
@Column
@Embedded
@JsonUnwrapped
private School school;
}
public class School{
private Integer grade;//eg. 2nd, 3rd
private String type; //eg. primary, secondary
}
到目前为止,代码只是获取所有学生及其数据或获取特定学生。所以,数据库模式就是这样。但是现在,我们有一个新功能,我们需要根据特定成绩进行搜索并获取该特定成绩的所有学生。或获取特定学校类型的所有学生,例如。小学的所有学生。所以,需求已经完全颠倒了,我们需要将返回的下面的模式发送到前端:
class SchoolResponseDTO{
private String schoolType;
private List<Integer> grades;
}
class Grade{
private Integer id;
private List<Integer> studentId;
}
有点冗长,从现在开始,我们需要找到所有学校类型,然后是该学校类型中的所有年级,然后是该学校类型和年级中的所有学生。
到目前为止,我们一直在使用 Spring JpaRepository 来满足我们的需求。我觉得这个新要求需要自定义查询,我认为这不能使用 JPARepository 以直接的方式处理。我只需要知道你怎么想。这可以在没有自定义 sql 查询的情况下完成吗?
【问题讨论】:
标签: java spring spring-boot spring-data-jpa entity