You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by kw...@apache.org on 2010/10/04 23:34:21 UTC

svn commit: r1004441 - in /openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external: EntityA.java TestExternalValues.java

Author: kwsutter
Date: Mon Oct  4 21:34:20 2010
New Revision: 1004441

URL: http://svn.apache.org/viewvc?rev=1004441&view=rev
Log:
Update ExternalValue testcase to show a "common" boolean to char mapping...

Modified:
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/EntityA.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/TestExternalValues.java

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/EntityA.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/EntityA.java?rev=1004441&r1=1004440&r2=1004441&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/EntityA.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/EntityA.java Mon Oct  4 21:34:20 2010
@@ -43,7 +43,18 @@ public class EntityA implements java.io.
 	@ExternalValues( { "SMALL=5", "MEDIUM=8", "LARGE=15" })
 	@Type(int.class)
 	private String s2;
-
+	
+	/*
+	 * By default, OpenJPA stores Chars as Ints, so to force the use of
+	 * a char(1) field, you would need to override this processing via
+	 * a DBDictionary property:
+	 * -Dopenjpa.jdbc.DBDictionary=derby(StoreCharsAsNumbers=false)
+	 */
+    @Column(name="USE_STREAMING", length=1)
+    @ExternalValues({"true=T", "false=F"})
+    @Type(char.class)
+    private boolean _useStreaming = false;
+    
 	public EntityA() {
 	}
 
@@ -66,4 +77,12 @@ public class EntityA implements java.io.
 	public void setS2(String s2) {
 		this.s2 = s2;
 	}
+	
+    public boolean getUseStreaming() {
+        return _useStreaming;
+    }
+
+    public void setUseStreaming(boolean useStreaming) {
+        _useStreaming = useStreaming;
+    }
 }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/TestExternalValues.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/TestExternalValues.java?rev=1004441&r1=1004440&r2=1004441&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/TestExternalValues.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/external/TestExternalValues.java Mon Oct  4 21:34:20 2010
@@ -19,15 +19,43 @@
 package org.apache.openjpa.persistence.external;
 
 import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import junit.framework.Assert;
 
-import org.apache.openjpa.persistence.PersistenceException;
 import org.apache.openjpa.persistence.RollbackException;
 import org.apache.openjpa.persistence.test.SingleEMFTestCase;
 
 public class TestExternalValues extends SingleEMFTestCase {
 
     public void setUp() {
-        super.setUp(EntityA.class);
+        super.setUp(CLEAR_TABLES, EntityA.class);
+    }
+
+    public void testExternalValues() {
+        EntityManager em = emf.createEntityManager();
+
+        em.getTransaction().begin();
+
+        EntityA entity = new EntityA();
+
+        entity.setS1("SMALL");
+        entity.setS2("MEDIUM");
+        entity.setUseStreaming(true);
+
+        em.persist(entity);
+        
+        em.getTransaction().commit();
+        
+        // Validate
+        
+        Query q = em.createQuery("SELECT a from EntityA a");
+        EntityA aPrime = (EntityA) q.getSingleResult();
+        Assert.assertEquals("SMALL", aPrime.getS1());
+        Assert.assertEquals("MEDIUM", aPrime.getS2());
+        Assert.assertEquals(true, aPrime.getUseStreaming());
+
+        em.close();
     }
 
     public void testUnrecognizedExternalValue() {