我收到错误

[57, 57] An identification variable must be defined for a JOIN expression
尝试运行此查询时
    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();
    }
这是什么原因造成的?如何修复?

最佳答案

也许,因为你有不同的表名:INNER JOIN Users_appointmentAND users_appointment.userid

关于mysql - 57, 57 必须为 JOIN 表达式定义标识变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20425897/

10-11 12:47