当前位置: 首页 > 知识库问答 >
问题:

运行springboot项目时获取SQLSyntaxErrorException

苏晓博
2023-03-14
package com.rahul.flightreservation.repos;

import java.util.Date;
import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import com.rahul.flightreservation.entities.Flight;

public interface FlightRepository extends JpaRepository<Flight, Long > {

    
    @Query(value="from Flight where departureCity= :departureCity and arrivalCity= :arrivalCity and dateOfDeparture= :dateOfDeparture", nativeQuery = true)
    List<Flight> findFlights(@Param("departureCity") String from, @Param("arrivalCity") String to, @Param("dateOfDeparture")  Date departureDate);

}

航班类别:package com.rahul.flightreservation.entities;

import java.sql.Timestamp;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;

@Entity
public class Flight extends AbstractEntity {
    
    private String flightNumber;
    private String operatingAirlines;
    @Column(name="Departure_City")
    private String departureCity;
    @Column(name="Arrival_City")
    private String arrivalCity;
    @Column(name="Date_of_Departure")
    private Date dateOfDeparture;
    private Timestamp estimatedDepartureTime;

    public String getFlightNumber() {
        return flightNumber;
    }

    public void setFlightNumber(String flightNumber) {
        this.flightNumber = flightNumber;
    }

    public String getOperatingAirlines() {
        return operatingAirlines;
    }

    public void setOperatingAirlines(String operatingAirlines) {
        this.operatingAirlines = operatingAirlines;
    }

    public String getDepartureCity() {
        return departureCity;
    }

    public void setDepartureCity(String departureCity) {
        this.departureCity = departureCity;
    }

    public String getArrivalCity() {
        return arrivalCity;
    }

    public void setArrivalCity(String arrivalCity) {
        this.arrivalCity = arrivalCity;
    }

    public Date getDateOfDeparture() {
        return dateOfDeparture;
    }

    public void setDateOfDeparture(Date dateOfDeparture) {
        this.dateOfDeparture = dateOfDeparture;
    }

    public Timestamp getEstimatedDepartureTime() {
        return estimatedDepartureTime;
    }

    public void setEstimatedDepartureTime(Timestamp estimatedDepartureTime) {
        this.estimatedDepartureTime = estimatedDepartureTime;
    }
    
    
    

}

表说明:ID航班号运营航空公司出发城市到达城市日期出发估计日期出发时间

错误:Hibernate:from Fligher where departurecity=?和到达=?和DateofDeparture=?2020-06-28 20:32:13.138警告5744---[nio-8083-exec-8]O.H.Engine.jdbc.spi.sqlexceptionHelper:SQL错误:1064,SQLState:42000 2020-06-28 20:32:13.138错误5744---[nio-8083-exec-8]O.H.Engine.jdbc.spi.sqlexceptionHelper:您的SQL语法有错误;查看与您的MySQL server版本相对应的手册中的正确语法,以使用“from Flight where departurecity='AUS'和arrivalcity='NYC'和dateofdepartur”在第1行202-06-28 20:32:13.194错误5744---[nio-8083-exec-8]o.a.c.c.c.[.[.[.[.[.[.[.[.[.[.[dispatcherServlet]:在路径为[/FlightReservation]的上下文中servlet[dispatcherServlet]的servlet.Service()引发异常[请求处理失败;嵌套异常

null

共有1个答案

商夜洛
2023-03-14

首先,这里不是缺少select*吗?

其次,您将其称为本机查询,但在查询中使用flight实体。

如果您选择使用JPQL,那么查询应该是

select f from Flight f where f.departureCity= :departureCity and f.arrivalCity= :arrivalCity and f.dateOfDeparture= :dateOfDeparture

但是,如果您将该方法重命名为

findallbydeparturecityandarrivalcityanddateofdeparty(...)

 类似资料:
  • 我有一个基本的SpringBoot应用程序。使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎,并将包作为可执行的JAR文件。是一个带有Spring Boot的多模块项目,该项目将有3个模块。这里是父模块pom。xml 这里是模块核心 这里是模块web: 从父根目录,我使用以下方法生成所有模块: 但问题是tdk-web-0.0.2-SNAPSHOT。jar不包含tdk-c

  • 我有一个希望通过maven运行的主类,这个主类动态创建testng.xml文件,测试就是这样开始的。但是当我通过'run as->Maven Test'运行我的项目时,我得到了'SureFireExecutionException'。下面是pom.xml: 编辑:在这里为上面的查询打开了一个新问题:无法从maven运行testNG测试

  • 在尝试运行我的第一个HelloWorld应用程序时,我发现了以下异常: org.springframework.beans.factory.beanDefinitionStoreException:未能读取候选组件类嵌套异常为java.lang.IllegalStateException:由于找不到org/springframework/dao/dataAccessException,无法计算or

  • 我有一台笔记本电脑:hp pav dv6 4 gb ram 32位win 8。这就是我尝试运行一个旧项目时得到的结果。 错误消息: 无法启动守护进程。此问题可能是由于守护进程的配置不正确造成的。例如,使用了无法识别的jvm选项。请参阅《用户手册》中有关守护程序的章节https://docs.gradle.org/5.6.4/userguide/gradle_daemon.html进程命令行:C:\

  • 本文向大家介绍Linux Docker运行springboot项目的步骤详解,包括了Linux Docker运行springboot项目的步骤详解的使用技巧和注意事项,需要的朋友参考一下 简介: Docker 运行springboot项目其实配置非常简单,跟咱们直接到Linux上运行springboot是一样一样的。开始 一:咱们首先要有一个运行Docker环境 第一步:使用 yum 安装(Cen

  • 我有一个Springboot Maven项目,它使用@JmsListener从队列中读取消息。 如果没有事件进来,堆内存会慢慢增加。当消息传来时,堆内存会快速增加。但是堆内存永远不会下降(查看下图)。 如果我添加系统。gc()在receiver方法的末尾,垃圾收集器正在按预期完成其工作。但这绝对不是好的做法。 如何确保gc在适当的时间运行。任何帮助都将不胜感激! 堆内存使用率 接收方法