Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA/Hibernate:IN?1原因的收集参数;没有为参数1指定值";_Hibernate_Jpa_Jdbc_Parameters - Fatal编程技术网

JPA/Hibernate:IN?1原因的收集参数;没有为参数1指定值";

JPA/Hibernate:IN?1原因的收集参数;没有为参数1指定值";,hibernate,jpa,jdbc,parameters,Hibernate,Jpa,Jdbc,Parameters,我有一个JPQL查询 SELECT wu.tags, (IF('tag2' IN wu.tags, 1,0) + IF('tag1' IN wu.tags, 1,0) + 0) AS score FROM WorkUnit wu WHERE wu.tags IN ?1 这与下面的例外情况类似 发生了什么事?我应该如何通过收集? 对我来说似乎是Hibernate bug,因为它在JDBC级别出错了 String jpql = "SELECT wu.tags, ("

我有一个JPQL查询

SELECT wu.tags, 
  (IF('tag2' IN wu.tags, 1,0) + IF('tag1' IN wu.tags, 1,0) +  0) AS score
FROM WorkUnit wu WHERE wu.tags IN ?1
这与下面的例外情况类似

发生了什么事?我应该如何通过收集? 对我来说似乎是Hibernate bug,因为它在JDBC级别出错了

    String jpql =
        "SELECT wu.tags, (" + sb.toString() + " 0) AS score "
        + "  FROM WorkUnit wu WHERE wu.tags IN ?1";
    return em.createQuery( jpql )
            .setParameter(1, wu.getTags())
            //.setMaxResults(maxResults)
            .getResultList();
wu.getTags()
返回
Set

但这会引发:

java.sql.SQLException: No value specified for parameter 1
     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
     at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2611)
     at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2586)
     at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2510)
     at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2259)
     at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:462)
     at java.lang.reflect.Method.invoke(Method.java:601)
     at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122)
     at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
     at $Proxy72.executeQuery(Unknown Source)
     at org.hibernate.loader.Loader.getResultSet(Loader.java:1897)
     at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1698)
     at org.hibernate.loader.Loader.doQuery(Loader.java:832)
     at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
     at org.hibernate.loader.Loader.doList(Loader.java:2382)
     at org.hibernate.loader.Loader.doList(Loader.java:2368)
     at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2198)
     at org.hibernate.loader.Loader.list(Loader.java:2193)
     at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470)
     at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)
     at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)
     at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1248)
     at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
     at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:257)
     at org.jboss.essc.web.dao.WorkDao.getWorkUnitsSimilarTo(WorkDao.java:89)

JPQL/HQL不支持
IN
IN
SELECT
子句中的
。。。
实际上,
SELECT
中可用的东西列表非常有限


JPQL/HQL不支持
IN
IN
SELECT
子句中的
。。。
实际上,
SELECT
中可用的东西列表非常有限


您能像这样在查询中追加集合吗……我不确定:/n您检查过jpa 2了吗?为参数设置集合在jpa 1中不受支持,它是JBoss AS 7.1.3,所以我有jpa 2.0,而不是Hibernate 4.1.8。你能像这样将集合附加到查询中吗……我不确定这一点:/What's check you have jpa 2?jpa 1Well不支持为参数设置集合,它是JBoss AS 7.1.3,因此我在Hibernate 4.1.8上使用了jpa 2.0。我在JPQL select语句中到处都使用。。我在JPQL select语句中到处都使用。。而且效果很好。