-2

error message : org.hibernate.hql.ast.QuerySyntaxException: unexpected token

 @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;
    }

First method query is working . unexpected token error occure when it reach on 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);
Shoaib
  • 3
  • 5

1 Answers1

0

The problem seems to be in + " AND orderno in (" + orders + ") "

Why don't you remove it once and try. If it works, replace it with

AND orderno in (:orders )

you can refer passing list to IN clause in HQL or SQL?

Community
  • 1
  • 1
Saurabh Jhunjhunwala
  • 2,832
  • 3
  • 29
  • 57