gpt4 book ai didi

java - 使用@Query 注释按名字排序数据库信息不起作用,我该如何解决?

转载 作者:行者123 更新时间:2023-11-30 12:06:16 25 4
gpt4 key购买 nike

这是我的学生资料库..

  @Query(value = "SELECT * FROM Student order by last_name ASC", nativeQuery = true)
public List<Student> orderByLastName();

@Query(value = "SELECT * FROM Student order by first_name ASC", nativeQuery = true)
public List<Student> orderByFirstName();

这是我的服务和我的 Controller

  public List<Student> showAllStudentsByFirst()
{
List<Student> students = new ArrayList<>();
for (Student student : studentRepository.findAll())
{
students.add(student);
}
studentRepository.orderByFirstName();
return students;
}

public List<Student> showAllStudentsByLast()
{
List<Student> students = new ArrayList<>();
for (Student student : studentRepository.findAll())
{
students.add(student);
}
studentRepository.orderByLastName();
return students;
}
  @GetMapping("/listByFirst")
public String listStudentsByFirst(Model model)
{
List<Student> students = studentService.showAllStudentsByFirst();
model.addAttribute("students", students);

return "list-students";
}

@GetMapping("/listByLast")
public String listStudentsByLast(Model model)
{
List<Student> students = studentService.showAllStudentsByLast();
model.addAttribute("students", students);

return "list-students";
}

该 url 有效,而且当我单击按钮 Orderby First 或 order by last 时,这是控制台中显示的消息

: select student0_.student_id as student_1_1_, student0_.email as email2_1_, student0_.first_name as first_na3_1_, student0_.last_name as last_nam4_1_ from user_db.student student0_
2019-04-15 14:11:46.059 DEBUG 10392 --- [nio-8080-exec-1] org.hibernate.SQL : SELECT * FROM Student order by first_name ASC

其他一切正常,但名称没有按 first 或 last 返回 acending 表,仅供引用这是我的 jsp 代码

   <input type="button" value="Sort By First Name"
onclick="window.location.href='listByFirst'; return false;"/>
<br/>
<input type="button" value="Sort By Last Name"
onclick="window.location.href='listByLast'; return false;"/>

只是订购的表没有返回,我该如何解决?谢谢!

最佳答案

两种下单方式你都不要用返回。它们返回一个按照查询中定义的方式排序的新列表。

相反,您执行 findAll 来创建您显示的输出。并且对订单方法的调用简单地衰减为空。

转储服务中两个方法的前四行,并简单地从订单方法返回值:

public List<Student> showAllStudentsByFirst() {
return studentRepository.orderByFirstName();
}

public List<Student> showAllStudentsByLast() {
return studentRepository.orderByLastName();
}

关于java - 使用@Query 注释按名字排序数据库信息不起作用,我该如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55695919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com