代码之家  ›  专栏  ›  技术社区  ›  mehul

HQL查询“意外令牌”中的语法错误

  •  2
  • mehul  · 技术社区  · 9 年前

    我在hql中使用select查询。但我不能在我的API中使用。

    org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token:
    

    有人能告诉我HQL中的错误是什么吗

    参考代码:

    Session session = SessionUtil.getSession();
    
    Query query = session.createQuery("SELECT a.mobile, a.email, p.patientId FROM (SELECT l "
            + "from login l where email= :email and password= :password) a INNER JOIN patientprofile p ON a.loginId= p.loginId");
    query.setParameter("email", email);
    query.setParameter("password", password);
    List<Login> logins = query.list();
    session.close();
    return logins;
    
    2 回复  |  直到 9 年前
        1
  •  1
  •   Youcef LAIDANI    9 年前

    子查询

    Query query = session.createNativeQuery("SELECT a.mobile, a.email, p.patientId FROM "
            + "(SELECT * from login l where email= :email and password= :password) a "
            + "INNER JOIN patientprofile p ON a.loginId= p.loginId");
    query.setParameter("email", email);
    query.setParameter("password", password);
    

    JPQL documentation

    Subqueries WHERE 或 HAVING 条款

        2
  •  1
  •   gokhanbirincii    9 年前

    注意,HQL子查询只能在 select或where子句。

    您可以使用连接方法并链接它们,而不是本机查询。

    注意,HQL适用于