Java 从JPA查询MySQL数据库

Java 从JPA查询MySQL数据库,java,mysql,sql,jakarta-ee,jpa,Java,Mysql,Sql,Jakarta Ee,Jpa,我正在从事一个Java项目。我想要一个与入学日期相关的mysql查询,在两个模块学生和出勤之间有映射。以下是我目前的代码: public List<Student> findStudentByDate(String admissionDate) { System.out.println("call findStudentMethd******************with this pattern" + admissionDate + "**

我正在从事一个Java项目。我想要一个与入学日期相关的mysql查询,在两个模块学生和出勤之间有映射。以下是我目前的代码:

public List<Student> findStudentByDate(String admissionDate) {

   System.out.println("call findStudentMethd******************with this pattern"
        + admissionDate
        + "*********************************************");
   return em.createQuery("select student from Student student where student.admissionDate>='' AND < '' like '" + admissionDate + "'")
            .getResultList();
}
公共列表findStudentByDate(字符串允许日期){
System.out.println(“使用此模式调用FindStudentMethod**************”
+接纳日期
+ "*********************************************");
返回em.createQuery(“从student.admissionDate>=''和<''like'+admissionDate+''的学生中选择学生”)
.getResultList();
}

我相信您的查询的断裂在于您错过了条件

您必须在WHERE子句中提到列和值

换句话说,学生.录取日期=录取日期学生.录取日期=录取日期

下面是查询的外观(强调WHERE子句!):

“选择学生”+
“来自学生”+
“其中student.admissionDate>=”+“admissionDate+””+
“和student.admissionDate<'”+admissionDate+“”

您遇到了什么问题?请提供数据库架构的副本。如果您提出问题而不仅仅是发布代码,则会有所帮助。话虽如此,您的SQL毫无意义-您是否尝试过在查询窗口中执行它,而不是从Java执行?鉴于您的SQL脚本包含非常基本的错误,您的SQL知识一定非常贫乏。如果是这样,就不应该在Java程序中直接测试SQL。在允许您查看即时反馈(结果、错误等)的环境中单独运行SQL脚本。因此,请不要将集成在Java代码中的SQL脚本带给我们,因为您是专门询问SQL,而不是Java。总之,1)在将SQL放入Java之前,在专用的SQL工具中测试所有SQL;2)不要发布无关的代码;3)发布重要的细节。
  " SELECT student " +
  " FROM Student student " +
  " WHERE student.admissionDate >= '" + admissionDate + "'" +
  " AND   student.admissionDate <  '" + admissionDate + "'"