Jpa查询数据库操作,希望各位大牛看看帮帮忙。

在数据库中,航班(AirFlight)包括有航线(AirLine)和时间(精确到秒)。

航班类

航班类

航线类

图片说明

他们之间是@OneToOne的关系

现在我想在FlightRepository中根据航线的ID和出发的时间departureTime查询航班
并且查询是日期只需要精确到天。
sql语句我写出来了,但是在jpa中一直不知道该怎么写
图片说明

在FlightRepository我希望实现与上图同样的功能。
图片说明

但是这样写之后会报错

org.springframework.dao.InvalidDataAccessApiUsageException: Parameter value [1] did not match expected type [com.zjq.booking.entity.AirLine (n/a)]; nested exception is java.lang.IllegalArgumentException: Parameter value [1] did not match expected type [com.zjq.booking.entity.AirLine (n/a)]

希望各位大牛能够帮忙解决一下,万分感谢!

2个回答

你应该是时间转化不知道怎么处理成JPA或者HQL之类的吧,换个实录,把departureTime等某天换成

departureTime<=startTime and departureTime>=endTime

startTime为某天的00:00:00
endTime为某天的23:59:59;

不要直接全部数据转换后再匹配,有性能问题

Zjq2Zyh
Zjq2Zyh 回复Kevin.Y.K: 居然是要传AirLien对象进去,不能传Id
大约 2 个月之前 回复
guangcaiwudong
Kevin.Y.K 回复Zjq2Zyh: and f.airLine.id=? 试试,好多好多年没碰过JPA了
大约 2 个月之前 回复
Zjq2Zyh
Zjq2Zyh 问题我更新了一下,希望您能看看
大约 2 个月之前 回复
Zjq2Zyh
Zjq2Zyh 可能我描述的不太清楚,时间转换没有问题,就是写查询语句时,航线id不知道该怎么取到,我在航班实体与航线实体是一对一的关系,但是获取不到航线的I的d
大约 2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问