0

我正在使用对象数据库 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 有问题吗?或者,查询是否形成错误?谢谢你

4

1 回答 1

1

该查询不是有效的 JOIN 查询,因为查询未连接 Car c 和 Rental r。

但这并不能解释为什么你会得到空的结果。尝试通过运行较小的查询来隔离问题。例如,您能否在仅出租(无汽车)查询中按日期检索出租对象?

于 2013-05-30T15:39:08.693 回答