【问题标题】:Error: org.hibernate.hql.ast.QuerySyntaxError: unexpected token错误:org.hibernate.hql.ast.QuerySyntaxError:意外令牌
【发布时间】:2013-02-11 12:29:45
【问题描述】:

错误:

org.hibernate.hql.ast.QuerySyntaxError: 意外令牌 org.hibernate.hql.ast.QuerySyntaxError:意外令牌:在线附近 1,第 148 列 [SELECT op.username,op.email,orders.p_id,orders.o_id, product.listed_price FROM com.model.Orders 订单 INNER JOIN orders.OrderProcessing as op ON op.u_id = orders.u_id INNER JOIN orders.Product 作为产品 ON product.p_id = orders.p_id WHERE product.p_id = '208' ORDER BY op.username]

productList = 
(List<Object[]>) session.createQuery("SELECT op.username, op.email, orders.p_id, orders.o_id, product.listed_price " + 
"FROM Orders  orders " +
"INNER JOIN orders.OrderProcessing as op " +                                                        
"ON op.u_id = orders.u_id " +                                                              
"INNER JOIN orders.Product as product " +                                                               
"ON product.p_id = orders.p_id " +                                                         
"WHERE product.p_id = '"+p_id +"' " +                                                          
"ORDER BY op.username").list();

【问题讨论】:

  • 我不相信 HQL 支持 ON。尝试使用 createSqlQuery() 而不是 createQuery()
  • 另外,您确实需要接受您之前问题的一些答案

标签: java hibernate jakarta-ee hql


【解决方案1】:

Hibernate 支持连接限制,但语法与 SQL 不同。您必须在 Hibernate 中将 ON 关键字替换为 WITH

【讨论】:

    【解决方案2】:
    productList = (List<Object[]>) session.createQuery("SELECT op.username, op.email, orders.p_id, orders.o_id, product.listed_price " + "FROM Orders  orders " +"INNER JOIN orders.OrderProcessing as op " +  "ON op.u_id = orders.u_id"+ "INNER JOIN orders.Product as product " + "ON product.p_id = orders.p_id "+ "WHERE product.p_id = '"+p_id +"'" "ORDER BY op.username").list();
    

    您必须检查订单表。 orders.orderProcessing 不是一个表,它是 orders 表中的一列。

    【讨论】:

      【解决方案3】:

      Chetter Hummin 是对的,HQL 不支持“开启”。 看到这个:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html

      【讨论】:

        猜你喜欢
        • 2011-12-20
        • 2015-11-19
        • 2018-08-27
        • 2014-12-07
        • 2016-08-10
        • 2013-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多