JPQL列表参数JPA1

时间:2017-03-29 13:59:18

标签: java hibernate jpa jpql

我正在使用参数选项进行SQl注射。

我想在没有for循环的情况下在我的查询中使用以下代码。

    List list = new ArrayList<String>();
    list.add("elt1");
  Query  query = "....tab.elt IN (:list)";
    query.setParameter("list", list);

我正在使用Hibernate 2,jpa 1和使用私有代码我得到了异常

有没有解决方法如何处理这个问题?

更新:

例外是:

Caused by: org.hibernate.QueryTimeoutException: could not execute query     
  at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:124)
  at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
  at org.hibernate.loader.Loader.doList(Loader.java:2536)   
  at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)     
  at org.hibernate.loader.Loader.list(Loader.java:2271)     
  at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316)
  at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1842)
  at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
  at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:157)    
  at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246)  
  ... 53 more 
Caused by: java.sql.SQLException: ORA-01460: conversion request not implemented or irrational 
  at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
  at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
  at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)
  at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)  
  at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)  
  at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)    
  at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)
  at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:791)
  at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:866)
  at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
  at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3387)
  at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3431)
  at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
  at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
  at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
  at org.hibernate.loader.Loader.getResultSet(Loader.java:1953)     
  at org.hibernate.loader.Loader.doQuery(Loader.java:802)   
  at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
  at org.hibernate.loader.Loader.doList(Loader.java:2533)

0 个答案:

没有答案