Я использую 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 доступных автомобилей. Есть ли проблема с JOIN в JPQL? Или запрос плохо сформирован? благодарю вас