【问题标题】:Java Hibernate query ExceptionJava Hibernate 查询异常
【发布时间】:2017-09-21 06:09:12
【问题描述】:

错误消息:org.hibernate.hql.ast.QuerySyntaxException:意外令牌

 @SuppressWarnings("unused")
    @Transactional
    public List<String> getPartsFromMainOrder(String orders) {
        Session session = sessionFactory.getCurrentSession();

        String sql = "SELECT distinct partno FROM VendorOrderedItems  WHERE orderno in (:OrderNo)"
                + " ORDER BY partno";
        Query query = session.createQuery(sql);
         query.setInteger("OrderNo", Integer.parseInt(orders));
        List<String> partsList = query.list();
        session.flush();
        session.clear();

        return partsList;
    }

第一种方法查询有效。到达 query.setParameter("Partno",partno); 时发生意外令牌错误;

 @SuppressWarnings("unused")
    @Transactional
    public List<SelectedOrderItems> getSelectedOrderItems(List<String> lqs, String orders) {
        Session session = sessionFactory.getCurrentSession();
        List<SelectedOrderItems> lso = new ArrayList<SelectedOrderItems>();
        MultiMap multiMap = new MultiValueMap();
        String[] ord = orders.split(",");
        for (String partno : lqs) {
            String str1 = "SELECT price , orderno, quantity FROM vendorordereditems WHERE partno =:partNo "
                    + " AND orderno in (" + orders + ") "

                    + " AND price > 0 " + "ORDER BY price,orderno desc Limit 1";
            Query query = session.createQuery(str1);

            query.setParameter("partNo", partno);

【问题讨论】:

  • 那可能是哪个令牌? orders 的值是多少?我们应该如何为您提供这样的帮助?
  • 订单的数据类型是什么?在这种情况下,这可能就是问题所在。
  • @Mailkov 不错的拖钓
  • 订单数据类型为字符串。
  • @Shoaib 有什么价值?如果orders 的格式很乱,比如末尾多了一个逗号,就很容易破解。

标签: java hibernate hql


【解决方案1】:

问题似乎出在 + " AND orderno in (" + orders + ") "

您为什么不将其删除一次并尝试。如果有效,请将其替换为

AND orderno in (:orders)

你可以参考 passing list to IN clause in HQL or SQL?

【讨论】:

  • 我上传完整的代码,其中出现错误请检查一次
  • 请逐步尝试...删除" AND orderno in (" + orders + ") "。这将确保这是否导致问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 2010-11-22
  • 2015-06-02
  • 2012-02-12
  • 2015-03-10
  • 1970-01-01
相关资源
最近更新 更多