You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pc...@apache.org on 2007/06/16 08:54:12 UTC
svn commit: r547872 - in /openjpa/trunk:
openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestNewlinesInQueries.java
Author: pcl
Date: Fri Jun 15 23:54:12 2007
New Revision: 547872
URL: http://svn.apache.org/viewvc?view=rev&rev=547872
Log:
OPENJPA-259. Applied Craig's patch (minus the ACK char; maybe Craig meant ^L instead?), and added a test case. The test uses dynamic JPQL, but the parser change should work for XML-based named queries also, and it seems fair to allow newlines in dynamic strings as well.
Added:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestNewlinesInQueries.java
- copied, changed from r544634, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestQueryExcludingSubclasses.java
Modified:
openjpa/trunk/openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt
Modified: openjpa/trunk/openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt?view=diff&rev=547872&r1=547871&r2=547872
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt (original)
+++ openjpa/trunk/openjpa-kernel/src/main/jjtree/org/apache/openjpa/kernel/jpql/JPQL.jjt Fri Jun 15 23:54:12 2007
@@ -117,6 +117,7 @@
SKIP :
{
" "
+ | "\n"
| "\r"
| "\t"
}
Copied: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestNewlinesInQueries.java (from r544634, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestQueryExcludingSubclasses.java)
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestNewlinesInQueries.java?view=diff&rev=547872&p1=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestQueryExcludingSubclasses.java&r1=544634&p2=openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestNewlinesInQueries.java&r2=547872
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestQueryExcludingSubclasses.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/query/TestNewlinesInQueries.java Fri Jun 15 23:54:12 2007
@@ -18,83 +18,32 @@
*/
package org.apache.openjpa.persistence.query;
-import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
-import junit.textui.TestRunner;
-import org.apache.openjpa.persistence.OpenJPAQuery;
import org.apache.openjpa.persistence.test.SingleEMFTestCase;
/**
- * Test that we can exclude subclass instances from query results.
- *
- * @author Abe White
+ * Test that our parser handles newlines in queries
*/
-public class TestQueryExcludingSubclasses
+public class TestNewlinesInQueries
extends SingleEMFTestCase {
public void setUp() {
- setUp(ManyOneEntity.class, ManyOneEntitySub.class);
-
- ManyOneEntity e1 = new ManyOneEntity();
- e1.setName("e1");
- ManyOneEntity e2 = new ManyOneEntity();
- e2.setName("e2");
- ManyOneEntity invalid = new ManyOneEntity();
- invalid.setName("invalid");
- ManyOneEntitySub esub1 = new ManyOneEntitySub();
- esub1.setName("esub1");
- ManyOneEntitySub esub2 = new ManyOneEntitySub();
- esub2.setName("esub2");
- ManyOneEntitySub invalidsub = new ManyOneEntitySub();
- invalidsub.setName("invalidsub");
+ setUp(SimpleEntity.class, CLEAR_TABLES);
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
- em.persist(e1);
- em.persist(e2);
- em.persist(invalid);
- em.persist(esub1);
- em.persist(esub2);
- em.persist(invalidsub);
+ em.persist(new SimpleEntity("foo", "bar"));
em.getTransaction().commit();
em.close();
}
public void testQuery() {
EntityManager em = emf.createEntityManager();
- Query q = em.createQuery("select e from ManyOneEntity e "
- + "where e.name like 'e%' order by e.name asc");
- List<ManyOneEntity> res = (List<ManyOneEntity>) q.getResultList();
- assertEquals(4, res.size());
- for (int i = 0; i < 2; i++) {
- assertEquals(ManyOneEntity.class, res.get(i).getClass());
- assertEquals("e" + (i + 1), res.get(i).getName());
- }
- for (int i = 0; i < 2; i++) {
- assertEquals(ManyOneEntitySub.class, res.get(i + 2).getClass());
- assertEquals("esub" + (i + 1), res.get(i + 2).getName());
- }
- em.close();
- }
-
- public void testQueryExcludingSubclasses() {
- EntityManager em = emf.createEntityManager();
- Query q = em.createQuery("select e from ManyOneEntity e "
- + "where e.name like 'e%' order by e.name asc");
- ((OpenJPAQuery) q).setSubclasses(false);
- List<ManyOneEntity> res = (List<ManyOneEntity>) q.getResultList();
- assertEquals(2, res.size());
- for (int i = 0; i < res.size(); i++) {
- assertEquals(ManyOneEntity.class, res.get(i).getClass());
- assertEquals("e" + (i + 1), res.get(i).getName());
- }
+ Query q = em.createQuery("select e \n from simple e");
+ SimpleEntity e = (SimpleEntity) q.getSingleResult();
+ assertEquals("foo", e.getName());
em.close();
}
-
- public static void main(String[] args) {
- TestRunner.run(TestQueryExcludingSubclasses.class);
- }
-}
-
+}
\ No newline at end of file