Saying position beyond number of declared ordinal parameters

hibernate, java

Solution

Use index as `0` since the parameter index start from `0`.

sessionFactory.getCurrentSession()
  .createSQLQuery("update table1 set someCounter = someCounter + 1 where id = ?")
  .setParameter(0, someId)
  .executeUpdate();

Since you are using Hibernate, you can use the named parameter as well i.e.

sessionFactory.getCurrentSession()
  .createSQLQuery("update table1 set someCounter = someCounter + 1 where id = :id")
  .setParameter("id", someId)
  .executeUpdate();

Problem

I want to perform a native/raw mysql query using hibernate, I have this: ``` sessionFactory.getCurrentSession().createSQLQuery( "update table1 set someCounter = someCounter + 1 where id = ?") .setParameter(1, someId) .executeUpdate(); ``` I'm getting the error: ``` threw exception [Request processing failed; nested exception is org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 2] with root cause org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 2 ``` What's wrong here?

Original source

Related problems