# [Hibernate] could not locate named parameter



## The_S (1. Apr 2009)

Hi-Ho zusammen,

folgende Situation. Ich habe in einem Projekt einen NamedNativeQuery. Wenn ich diesen in einer normalen Klasse mit Main-Methode aufrufe

[HIGHLIGHT="Java"]public class Test {

    public static void main(String[] args) {
        EntityManager entityManager = Persistence.createEntityManagerFactory(
                    "xyz").createEntityManager();
        try {
              Query q = entityManager
                          .createNamedQuery(PlanningData.QUERY);
              q.setParameter("version", Long.valueOf(1));
              q.setParameter("segmentId", Long.valueOf(1));
              q.setParameter("userId", Long.valueOf(1));
              q.setParameter("partialAgentAreaId", Long.valueOf(1));
              q.setParameter("agentAreaId", Long.valueOf(1));
              q.setParameter("collectionId", Long.valueOf(1));
              q.setParameter("year", Long.valueOf(2008));
              q.getResultList();
        } finally {
              entityManager.close();
        }
  }

}[/HIGHLIGHT]

Funktioniert alles wie gewollt. Wenn ich das jetzt aber in einen JUnit-Test im selben Projekt verpacke

[HIGHLIGHT="Java"]		try {
			Query q = entityManager.createNativeQuery(PlanningData.QUERY);
            q.setParameter("version", Long.valueOf(1));
            q.setParameter("segmentId", Long.valueOf(1));
            q.setParameter("userId", Long.valueOf(1));
            q.setParameter("partialAgentAreaId", Long.valueOf(1));
            q.setParameter("agentAreaId", Long.valueOf(1));
            q.setParameter("collectionId", Long.valueOf(1));
            q.setParameter("year", Long.valueOf(2008));
			q.getResultList();
		} catch (RuntimeException ex) {
			logger.debug("get failed", ex);
			throw ex;
		}
	}[/HIGHLIGHT]

Erhalte ich diese Fehlermeldung


```
java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: could not locate named parameter [version]
```

Und zwar für alle Parameter. Nachdem ich in meiner Main-Methode und im JUnit-Test auf den selben SQL zugreife (statische Variable "QUERY", die diesen SQL spezifiziert), kann ich mir dieses Verhalten nicht so ganz erklären.

Evtl. kann mir ja jemand den Wald vor lauter Bäumen zeigen!?

Danke


----------



## The_S (1. Apr 2009)

Da überlegt man seit Stunden rum, stellt den Code ins Forum, und 2 Minuten später fällt einem auf, dass man einmal einen NamedQuery und das andere Mal einen NativeQuery erstellt :lol:  

Trotzdem danke fürs lesen.


----------

