java.lang.IllegalArgumentException: No positional parameters in query: from MyClass myObject where myObject.field like '%?%'

hibernate.org | 4 months ago
  1. 0

    Hibernate Community • View topic - HQL: How use a parameter in a like %foo% expression?

    hibernate.org | 4 months ago
    java.lang.IllegalArgumentException: No positional parameters in query: from MyClass myObject where myObject.field like '%?%'
  2. 0

    [EJB-61] implicit parameter ? no longer supported - Hibernate JIRA

    atlassian.net | 12 months ago
    java.lang.IllegalArgumentException: Parameter 0 does not exist as a named parameter in
  3. 0

    [EJB-61] implicit parameter ? no longer supported - Hibernate JIRA

    atlassian.net | 12 months ago
    java.lang.IllegalArgumentException: Parameter 0 does not exist as a named parameter in
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    After upgrading from Hibernate EntityManager 3.1 beta 2 to Hibernate EntityManager 3.1 beta 3, queries with ? parameters do not work anymore. My query method looks like this: public List< ? > query(String queryString, Object... parameters) throws DataAccessException { EntityManager em = emf.createEntityManager(); EntityTransaction tx = null; try { tx = em.getTransaction(); tx.begin(); Query qry = em.createQuery(queryString); for (int i = 0; i < parameters.length; i++) { qry.setParameter(i, parameters[i]); } List< ? > result = qry.getResultList(); tx.commit(); return result; } catch (RuntimeException e) { if (tx != null) tx.rollback(); throw new DataRetrievalFailureException("Querying failed", e); } finally { em.close(); } } I'm calling it like this: (List<Contact>) dao.query("SELECT entity FROM " + Contact.class.getName() + " AS entity WHERE isEntityMarkedAsDeleted = ?", Boolean.FALSE); The following exception is thrown after the upgrade: java.lang.IllegalArgumentException: Parameter 0 does not exist as a named parameter in [SELECT entity FROM thomschkeOffice.model.services.contacts.Contact AS entity WHERE isEntityMarkedAsDeleted = ?] at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:398) at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:466) at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:154) at model.dao.ejb3.Ejb3DAO.query(Ejb3ThomschkeOfficeDAO.java:218) at model.services.contacts.ContactManager.getAllContacts(ContactManager.java:91) When using hibernate without EntityManager it works fine. It looks like that the method org.hibernate.ejb.QueryImpl.setParameter which converts the parameter position to a string value is interpreted by the org.hibernate.impl.AbstractQueryImpl.setParameter as a named parameter.

    Hibernate JIRA | 1 decade ago | Johan Steiner
    java.lang.IllegalArgumentException: Parameter 0 does not exist as a named parameter in [SELECT entity FROM thomschkeOffice.model.services.contacts.Contact AS entity WHERE isEntityMarkedAsDeleted = ?]
  6. 0

    After upgrading from Hibernate EntityManager 3.1 beta 2 to Hibernate EntityManager 3.1 beta 3, queries with ? parameters do not work anymore. My query method looks like this: public List< ? > query(String queryString, Object... parameters) throws DataAccessException { EntityManager em = emf.createEntityManager(); EntityTransaction tx = null; try { tx = em.getTransaction(); tx.begin(); Query qry = em.createQuery(queryString); for (int i = 0; i < parameters.length; i++) { qry.setParameter(i, parameters[i]); } List< ? > result = qry.getResultList(); tx.commit(); return result; } catch (RuntimeException e) { if (tx != null) tx.rollback(); throw new DataRetrievalFailureException("Querying failed", e); } finally { em.close(); } } I'm calling it like this: (List<Contact>) dao.query("SELECT entity FROM " + Contact.class.getName() + " AS entity WHERE isEntityMarkedAsDeleted = ?", Boolean.FALSE); The following exception is thrown after the upgrade: java.lang.IllegalArgumentException: Parameter 0 does not exist as a named parameter in [SELECT entity FROM thomschkeOffice.model.services.contacts.Contact AS entity WHERE isEntityMarkedAsDeleted = ?] at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:398) at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:466) at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:154) at model.dao.ejb3.Ejb3DAO.query(Ejb3ThomschkeOfficeDAO.java:218) at model.services.contacts.ContactManager.getAllContacts(ContactManager.java:91) When using hibernate without EntityManager it works fine. It looks like that the method org.hibernate.ejb.QueryImpl.setParameter which converts the parameter position to a string value is interpreted by the org.hibernate.impl.AbstractQueryImpl.setParameter as a named parameter.

    Hibernate JIRA | 1 decade ago | Johan Steiner
    java.lang.IllegalArgumentException: Parameter 0 does not exist as a named parameter in [SELECT entity FROM thomschkeOffice.model.services.contacts.Contact AS entity WHERE isEntityMarkedAsDeleted = ?]

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.IllegalArgumentException

      No positional parameters in query: from MyClass myObject where myObject.field like '%?%'

      at org.hibernate.impl.AbstractQueryImpl.setParameter()
    2. Hibernate
      AbstractQueryImpl.setParameter
      1. org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:171)
      2. org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:408)
      2 frames
    3. Hibernate
      HibernateTemplate$29.doInHibernate
      1. org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:745)
      1 frame