2017-04-24 13 views
-2

エラーメッセージ:org.hibernate.hql.ast.QuerySyntaxException:予期しないトークンJavaのHibernateのクエリ例外

@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); 
+0

を参照することができますそして、それはどのトークンがあるかもしれませんか? 「注文」の価値は何ですか?このようなお手伝いをするにはどうすればいいですか? – f1sh

+0

注文のデータタイプは何ですか?この場合の問題かもしれません。 –

+0

@Mailkov nice trolling – Andremoniy

答えて

0

問題は "(+オーダー+ ")" でANDあるOrderNo" +であるように思わ

なぜあなたは一度それを削除し、しようとしないでください。それが動作する場合、

でそれを交換し、中ORDERNO(:オーダー)

はあなたが passing list to IN clause in HQL or SQL?

+0

エラーが発生したコードをアップロードしてください。 – Shoaib

+0

ステップバイステップで削除してください。 "AND orderno in(" + orders + ")"を削除してください。これにより問題が発生しているかどうかを確認します –

関連する問題