2014-11-23 5 views
0

Я хочу передать список строки в качестве параметраоракула строки в качестве параметра

когда мой запрос генерируется из моего приложения у меня есть этот SQL-код:

SELECT * FROM Transfers TRANSFERS 
LEFT OUTER JOIN correspondence_copy CORRESPCPY on CORRESPCPY.ID_COPY = TRANSFERS.ID_COPY 
    WHERE TRANSFERS.ORDERNBR in ('[236359981, 236359982, 236359983]') 

это исходный код в Jave, где я использовал список

public List<SupEntity> sendSup(List<String> listOrderNumber) 
     throws Exception { 


     String query_tr = " SELECT * "; 


     query_tr += " FROM Transfers TRANSFERS "; 
     query_tr +=" LEFT OUTER JOIN correspondence_copy CORRESPCPY on CORRESPCPY.ID_COPY = TRANSFERS.ID_COPY " ; 

     query_tr +=" WHERE TRANSFERS.ORDERNBR in ('" +listOrderNumber + "')"; 


      SQLQuery sqlQuery = this.getSession().createSQLQuery(query_tr); 


      sqlQuery.setResultTransformer(Transformers.aliasToBean(
        SupEntity.class)); 

      List list = sqlQuery.list(); 

      return list; 
     } 

Я называю это Methode из этого кода:

public SupListEntity getsupList(
     HttpServletRequest request, 
     SupListEntity supListEntity) 
     throws Exception { 
     List<String> list = new ArrayList<String>(); 
     List<CorrespondenceEntity> sendsupList =new ArrayList<SupEntity>(); 
     String [] tabOrder=null; 

       if(supListEntity.getId()!=null) 
       { 

        tabOrder=supListEntity.getId().split(","); 
        if(tabOrder!=null && tabOrder.length>0) 
        { 
         for(int i=0;i<tabOrder.length;i++) 
         { 
          list.add(tabOrder[i]); 

         } 
         sendsupList = supDAO.sendSup(list); 
          supListEntity.setCorrespondenceList(sendsupList); 

        } 



       } 

     return supListEntity; 
    } 

поэтому проблема, что мой запрос, который generaed имеет такой код:

в («[236359981, 236359982, 236359983]»), который является ложным оно должно быть, как это в (» 236359981' , '236359982', '236359983')

ответ

0

Вы можете попробовать это:

String query_tr = " SELECT * "; 
     query_tr += " FROM Transfers TRANSFERS "; 
     query_tr +=" LEFT OUTER JOIN correspondence_copy CORRESPCPY on CORRESPCPY.ID_COPY = TRANSFERS.ID_COPY " ; 
     query_tr +=" WHERE TRANSFERS.ORDERNBR in (:list)"; 

SQLQuery sqlQuery = this.getSession().createSQLQuery(query_tr); 
sqlQuery.setParameterList("list", listOrderNumber)