为了账号安全,请及时绑定邮箱和手机立即绑定

JPA 属性表达式与使用“In”

JPA 属性表达式与使用“In”

www说 2021-09-26 17:07:06
我有3个班级:学院:id, name, ....学生:id, name, college, ....标记:id, subject, student我有大学对象和学生名单。我可以通过两种方式查询学生的分数:JPA 属性表达式:List<Marks> findByStudentCollege(College college).在查询中使用List<Marks> findByStudentIn(Set<Student> studentList)我需要帮助才能从性能角度了解哪个查询更适合使用。
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您正在执行两个不同的查询:

findByStudentCollege(College College) :这个将用于在“college”中的每个元素“student”中查找学院的标记。您没有在标记和大学之间建立联系,因此您可能会执行类似“从学生标记中选择 * 的查询 =(从学生中选择 id,其中大学 =(从大学中选择))

findByStudentIn(Set studentList) : 这将用于查找列表中的分数(0 个或多个“学生”元素,因此您需要先列出学生,或者使用它来查找焦点中的一个学生的分数。

如果您没有完整的学生名单,第二个可能是最好的选择。如果您有大学的所有学生,请使用第一个,因为您避免了第一个学生列表。

无论如何,您不会看到这些查询之间的差异,即使您正在处理 5k+ 行


查看完整回答
反对 回复 2021-09-26
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

你应该尝试findByStudentCollegeId,这比传递整个对象进行查询要好


查看完整回答
反对 回复 2021-09-26
  • 3 回答
  • 0 关注
  • 336 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信