【问题标题】:How to query by one field and order by another field in Spring?Spring中如何按一个字段查询并按另一个字段排序?
【发布时间】:2020-03-24 15:48:14
【问题描述】:

Request 有一个 student 属性和一个名为 SentDate 的 SQL 日期字段。我正在尝试获取基于一个学生的请求,并按 SentDate 字段对它们进行排序。我已经尝试了许多不同的查询,但我就是做错了。在堆栈上阅读我需要在 Student 和 OrderBy 之间有一个“By”,但这也没有解决它。

List<Request> findAllByStudentByOrderBySentDate(Student student);

我收到错误: 未找到 Student 类型的属性!遍历路径:Request.student。

请求:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long request_id;

@ManyToOne
@JoinColumn(name = "student_id")
private Student student;

@ManyToOne
@JoinColumn(name = "study_group_id")
private StudyGroup studyGroup;

private Date sentDate;

private Time time;

private String message;
...other fields

学生:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long student_id;

@OneToMany(mappedBy = "student", cascade = CascadeType.ALL)
private List<Request> requests;
...other fields

【问题讨论】:

  • Student property 是什么意思?它有一个叫做学生的领域吗?显示实体类
  • 它是一个字段,一个学生对象
  • 你是如何得到你正在通过的学生的?
  • 感谢您抽出宝贵时间,但 Marco 的回答奏效了!感谢您抽出时间提供帮助!

标签: java mysql sql spring


【解决方案1】:

当你尝试时会发生什么(我把 DESC 作为排序方向,你也可以试试 ASC)

List<Request> findByStudentOrderBySentDateDesc(Student student);

【讨论】:

  • 至少这次没有出错,但是当它应该返回 4 个请求时它返回了 0 个结果......不过感谢您的帮助。编辑:Nvm,它工作!谢谢伙计,我在其他地方犯了一个愚蠢的错误..
猜你喜欢
  • 2016-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多