我正在使用对象数据库 Objectdb 来保存要出租的汽车和出租请求。当一位客户要求租车时,我必须检查该车是否在该期间(从开始日期到结束日期)可用。在我的数据库中,我有两个表(两个类):汽车和租金。这是检查汽车是否可用的查询:
public List<Car> findByType(CarType type, Date start, Date end) {
TypedQuery<Car> query = em.createQuery("SELECT c FROM Car c, Rental r "
+ "WHERE c.type = :cartype AND "
+ "((r.start > :start AND r.start > :end) OR "
+ "(r.end < :start AND r.end < :end))", entityClass);
...
问题是这个查询总是返回 0 辆可用的汽车。JPQL 中的 JOIN 有问题吗?或者,查询是否形成错误?谢谢你