一尘不染

序数参数未绑定:@Query注释中的2

hibernate

尝试运行此查询时出现以下错误。

org.hibernate.QueryException:序数参数未绑定:2“,

@Query(value = "SELECT amu " +
                   "FROM Upgrade amu " +
                    "INNER JOIN FETCH amu.visibility v " +
                   " WHERE v IN ?2 " +
                    "AND amu.id= '?1' "         
   )
Optional<Upgrade> myFindMethod(final String uid, final String cid);

如果我改变 " WHERE v IN ?2 "" WHERE v IN ?2 OR v IN ?1 ",那么它的工作原理。我不知道为什么它不起作用。任何的想法?

注意:可见性是Set<String>Upgrade类中的类型。


阅读 243

收藏
2020-06-20

共1个答案

一尘不染

问题是您在查询中仅声明了一个绑定参数,但在方法中实际上只有两个参数。

这是因为在"AND amu.id= '?1' "绑定参数中实际上是由于字符串引号引起的字符串文字。如果希望将其作为绑定参数处理,请删除引号:"AND amu.id= ?1 "

2020-06-20