我正在寻找以下问题的解决方案-我想创建这样的@Query:
@Query("select s from Student s where s.name like %?1% and s.surname like %?1%")
因为我需要能够显示学生的名和姓。我能够使它工作,因为当我改变和与或,查询显示的条目,无论是名或姓,但一旦我改变回和什么都不显示。
第一次
我还有第二个问题,在使用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技巧,但是没有任何效果;(
3条答案
按热度按时间wwwo4jvm1#
JpaRepository
支持query方法,因此如果您想搜索包含保持器值的项目,只需定义如下方法即可。polhcujo2#
?1用于第一个参数
name
,因此必须将第二个?1替换为?2才能使用参数surname
。对于第二个问题,您可以将页面Map到列表中:
ac1kyiln3#
请看一下您的查询:
您已经用
?1
定义了两个占位符,这将导致两个占位符具有相同的值。因此,您实际上是在搜索具有相同名字和姓氏的人,这就是为什么OR
在这里是有效的。我不熟悉Spring,但阅读以下教程后,我知道您可以按如下方式编写查询:
不过,您需要将参数与方法参数列表中的
@Param(var)
注解绑定。最后一个问题:您可能不应该从REST(?)服务返回
Page<Student>
,而应该返回List<Student>
。