java - 为外键字段生成 JPA 查询
问题描述
我正在尝试获取使用教师 ID 的学生列表,这是使用但有错误Student
生成的表中的外键。@JoinColumn
Student.java
类字段关系:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "teacher_id", nullable=false)
private Student student;
Teacher.java
类字段关系:
@OneToMany(
mappedBy = "student",
cascade = CascadeType.ALL,
orphanRemoval = true
)
private List<Student> StudentsList = new ArrayList<>();
StudentResource.java
:
@GetMapping("/student/details/{teacherId}")
@Timed
public List<Student> getStudentDetails(@PathVariable Long teacherId) {
log.debug("REST request to get Student details: {}", teacherId);
List<Student> studentDetails= studentRepository.findByTeacherID(teacherId);
return studentDetails;
}
StudentRepository.java
:
List<Student> findByTeacherID(Long teacherId);
有没有办法可以直接映射字段而不是整个对象?
解决方案
有没有办法可以直接映射字段而不是整个对象?
假设Student
外观代码如预期的那样*而不是您发布的代码,这应该可以工作:
@Query("select s.id from Student s where s.teacher.id = :id")
List<Long> findByTeacherId(Long id);
* ieStudent
有一个teacher
引用 的属性Teacher
和一个名为id
type的 id 属性Long
。
推荐阅读
- r - Changing language settings in R
- algorithm - 找到一个 Xor b 等于 n。你能建议我找到 xor 值的有效方法吗
- python - 为什么 re.findall 只返回前十行
- javascript - 如何在对象响应类型中查找特定值
- reactjs - 如何在 DropDownPicker 中动态添加值动态 React Native
- ios - 当互联网速度非常慢时通知用户 - Xamarin Forms
- javascript - 如何将贷项通知单应用于发票?
- sqlite - 数据未显示在网格 UWP 的列中
- java - 如何在java中使用json数组?
- python - 使用 Keras 实现找到函数的最佳参数