【发布时间】:2026-02-18 03:05:02
【问题描述】:
我正在按照一些教程进行 Spring Boot 项目。我无法解决上述问题我尝试了一切。请帮帮我
Bean 类
@Entity
@Table(name="flight")
public class Flight {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name = "Flight_Number")
private String flightNumber;
@Column(name = "Operating_Airlines")
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;
@Column(name = "Estimated_Departure_Time")
private Timestamp estimatedDepartureTime;
//getters and setters
}}
存储库
public interface FlightRepository extends JpaRepository<Flight, Long> {
@Query(value = "select * from flight f where f.departureCity =:departureCity and f.arrivalCity =:arrivalCity and f.dateOfDeparture =:dateOfDeparture ", nativeQuery = true)
List<Flight> findFlights(@Param("departureCity") String from, @Param("arrivalCity") String to,
@Param("dateOfDeparture") Date departureDate);
}
数据库
create table flight
(
Id int not null auto_increment,
Flight_Number varchar(20) not null,
Operating_Airlines varchar(20) not null,
Departure_City varchar(20) not null,
Arrival_city varchar(20) not null,
Date_Of_Departure date not null,
Estimated_Departure_Time timestamp default current_timestamp,
primary key (Id)
)
我在“where 子句”中得到未知列“f.departureCity”。
【问题讨论】:
-
你在数据库中的列名为
Departure_City,所以我猜,查询必须是...where f.Departure_City =:departureCity... -
感谢它的工作。但德哈尔只是想知道。如果我使用 @Columnm 注释将我的变量映射到列名,那么它也可以使用该名称。请清除此
-
您的映射看起来不错,有什么问题?
-
使用
nativeQuery = true,实体上的映射不适用:查询按原样发送到数据库服务器,没有任何映射。
标签: java spring spring-mvc spring-boot spring-data-jpa