diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java index eaa17567d..5486b4000 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java @@ -130,6 +130,7 @@ public class PreparedQueryImpl implements PreparedQuery { * query. */ public void setInto(Query q) { + q.setQuery(_id); if (!_isProjection) q.setCandidateType(_candidate, _subclasses); } diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java index 13f24366a..f9519b6e2 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/sqlcache/TestPreparedQueryCache.java @@ -146,6 +146,18 @@ public class TestPreparedQueryCache extends SQLListenerTestCase { assertEquals(jpql, pq.getOriginalQuery()); } + public void testOriginalJPQLQueryStringIsSetOnPreparedQuery() { + String jpql = "select p from Company p"; + OpenJPAEntityManager em = emf.createEntityManager(); + OpenJPAQuery q1 = em.createQuery(jpql); + q1.getResultList(); + PreparedQuery pq = getCache().get(jpql); + assertNotNull(pq); + OpenJPAQuery q2 = em.createQuery(jpql); + assertEquals(jpql,q2.getQueryString()); + } + + public void testExclusionPattern() { OpenJPAEntityManager em = emf.createEntityManager(); OpenJPAQuery q1 = em.createQuery(EXCLUDED_QUERY_1);