Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按方法名创建的查询始终返回零计数_Java_Spring_Hibernate - Fatal编程技术网

Java 按方法名创建的查询始终返回零计数

Java 按方法名创建的查询始终返回零计数,java,spring,hibernate,Java,Spring,Hibernate,我试图统计一个表中名字与给定字符串匹配的学生。Lateron我想使用contains来查找名字包含给定字符串的学生 我在控制器中创建了端点: @GetMapping("/firstname") public int findStudentsByfirstName(@RequestParam(value="string")String firstName){ if (firstName != null){ System.out.println(firstName);

我试图统计一个表中名字与给定字符串匹配的学生。Lateron我想使用contains来查找名字包含给定字符串的学生

我在控制器中创建了端点:

@GetMapping("/firstname")
  public int findStudentsByfirstName(@RequestParam(value="string")String firstName){
    if (firstName != null){
      System.out.println(firstName);
      return studentRepository.countByfirstNameIgnoreCase(firstName);
    } else return 0;
}
以及按方法名称创建的查询:

@Repository
public interface StudentRepository extends CrudRepository<Student, String> {
  int countByfirstNameIgnoreCase(String firstName);
}
当我询问localhost:8080/学生时,我得到:

{"id":"c30e24a8-6b4a-4eec-a28c-afec74709141",
"lastName":"Schlund",
"firstName":"Rainer",
"eMail":"max@student.kit.edu",
"phoneNumber":"011981954856821",
"street":"Musterstraße 1",
"place":"123456 Musterstadt",
"role":"Student",
"immatriculationNumber":"196495619562",
"major":"Informatik",
"semester":27,
"spoId":"SPO08"}
有一个人的名字叫雷纳


但是当我尝试localhost:8080/student/firstname?string=Rainer时,结果是0。

确保正确的方法是

int countByfirstNameIgnoreCase(String firstName);
而不是

int findByfirstNameIgnoreCase(String firstName);

您尚未向我们展示执行查询的方法。可能就是这个bug。它应该由Hibernate从int countByfirstNameIgnoreCaseString firstName代码行自动创建;如上面第二个代码块所示。您是否尝试过不使用双引号?localhost:8080/student/firstname?string=rainer这是一个愚蠢的错误。谢谢,没问题。很高兴提供帮助。我相信从Spring Data 1.7.1开始,countBy是适用的。
int findByfirstNameIgnoreCase(String firstName);