57, 57 必须为 JOIN 表达式定义标识变量

use*_*913 5 mysql sql jpql

我收到错误

[57, 57] An identification variable must be defined for a JOIN expression
Run Code Online (Sandbox Code Playgroud)

当尝试运行此查询时

    public String searchString = "test";

    public List<Appointment> appointmentRangeSearch(Date startdatetime, Date endDate) {
        Query q = em.createQuery("SELECT u FROM Appointment U INNER JOIN Users_appointment "
                + "ON u.userid = users_appointment.userid"
                + " WHERE u.startDatetime BETWEEN :date1 AND :date2 "
                + "AND u.ATTENDEES_USER_NAME LIKE :search");
//Query q = em.createQuery("SELECT u FROM Appointment U WHERE u.startDatetime BETWEEN :date1 AND :date2");
        q.setParameter("search", "%" + searchString + "%");
        q.setParameter("date1", startdatetime, TemporalType.TIMESTAMP);
        q.setParameter("date2", endDate, TemporalType.TIMESTAMP);
        return q.getResultList();
    }
Run Code Online (Sandbox Code Playgroud)

是什么原因造成的?如何解决?

Ale*_*tau 1

也许,因为你有不同的表名:

INNER JOIN Users_appointment

和

users_appointment.userid