【发布时间】:2013-12-23 21:45:06
【问题描述】:
大家好,我收到了错误:
Exception Description: Syntax error parsing [SELECT u FROM Appointment U WHERE u.startDatetime BETWEEN :date1 AND :date2 INNER JOIN Users_appointment where u.ATTENDEES_USER_NAME LIKE :search].
[34, 105] The expression is not a valid conditional expression.
当我尝试运行查询时
public List<Appointment> appointmentRangeSearch(Date startdatetime, Date endDate) {
Query q = em.createQuery("SELECT u FROM Appointment U WHERE u.startDatetime BETWEEN :date1 AND :date2 INNER JOIN Users_appointment where u.ATTENDEES_USER_NAME LIKE :search");
q.setParameter("search", "%" + searchString + "%");
q.setParameter("date1", startdatetime, TemporalType.TIMESTAMP);
q.setParameter("date2", endDate, TemporalType.TIMESTAMP);
return q.getResultList();
}
我的想法是我在约会表中搜索一系列日期,然后查看 users_appointment 表中是否有匹配的用户名,如果有,则输出此
怎么了?
谢谢
【问题讨论】:
-
您有 2 个 WHERE 子句。使用
AND操作将WHERE u.startDatetime BETWEEN :date1 AND :date2移动到底部的WHERE 子句。 (仅供参考:您可能还缺少ON子句)