【发布时间】:2022-11-22 01:50:58
【问题描述】:
我正在寻找以下问题的解决方案 - 我想像这样创建一个@Query:
@Query("select s from Student s where s.name like %?1% and s.surname like %?1%")
因为我需要能够向学生展示名字和姓氏。我能够使它起作用,因为当我使用 or 更改 and 时,查询显示具有给定名称或给定姓氏的条目,但是一旦我将其更改回并且没有任何显示。
interface StudentRepository extends JpaRepository<Student, Integer> {
@Query("select s from Student s where s.name like %?1% and s.surname like %?1%")
Page<Student> findByNameAndSurname( String name, String surname, Pageable pageable);
}
@GetMapping
Page<Student> getAllStudents(@RequestParam Optional<String> name,
@RequestParam Optional<String> surname,
@RequestParam Optional<Integer> page,
@RequestParam Optional<String> sortBy) {
return repository.findByNameAndSurname(name.orElse("_"),
surname.orElse("_"),
PageRequest.of(
page.orElse(0), 5,
Sort.Direction.ASC, sortBy.orElse("id")));
我还有第二个问题,是否可以在使用 pageRequest 时删除显示在 JSON 末尾的代码 - 如果可能的话,我希望只显示学生条目而不显示此代码
{"content":[],"pageable":{"sort":{"empty":false,"sorted":true,"unsorted":false},"offset":0,"pageNumber":0,"pageSize":5,"unpaged":false,"paged":true},"last":true,"totalPages":0,"totalElements":0,"size":5,"number":0,"sort":{"empty":false,"sorted":true,"unsorted":false},"first":true,"numberOfElements":0,"empty":true}
我尝试在 @Query 注释中使用本机查询,我也尝试修改查询本身,使用我在网上找到的一些 concat 技巧,但没有任何效果;(
【问题讨论】:
标签: java sql spring get-mapping