You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by de...@apache.org on 2009/06/18 21:31:41 UTC
svn commit: r786218 - in /openjpa/branches/1.1.x:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ResultSetResult.java
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestSerializedLobs.java
Author: dezzio
Date: Thu Jun 18 19:31:41 2009
New Revision: 786218
URL: http://svn.apache.org/viewvc?rev=786218&view=rev
Log:
Fix for OpenJPA-525: committed for Amy Yang, from 1.1.x patch
Modified:
openjpa/branches/1.1.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ResultSetResult.java
openjpa/branches/1.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestSerializedLobs.java
Modified: openjpa/branches/1.1.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ResultSetResult.java
URL: http://svn.apache.org/viewvc/openjpa/branches/1.1.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ResultSetResult.java?rev=786218&r1=786217&r2=786218&view=diff
==============================================================================
--- openjpa/branches/1.1.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ResultSetResult.java (original)
+++ openjpa/branches/1.1.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ResultSetResult.java Thu Jun 18 19:31:41 2009
@@ -465,7 +465,7 @@
protected String getStringInternal(Object obj, Joins joins)
throws SQLException {
if (obj instanceof Column && ((Column) obj).getType() == Types.CLOB)
- return _dict.getClobString(_rs, ((Column) obj).getIndex());
+ return _dict.getClobString(_rs, findObject(obj, joins));
return _dict.getString(_rs, ((Number) obj).intValue());
}
@@ -489,6 +489,9 @@
throws SQLException {
if (obj instanceof Number)
return obj;
+ // getStringInternal will take care the translation
+ if (obj instanceof Column && ((Column) obj).getType() == Types.CLOB)
+ return obj;
return Numbers.valueOf(findObject(obj, joins));
}
Modified: openjpa/branches/1.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestSerializedLobs.java
URL: http://svn.apache.org/viewvc/openjpa/branches/1.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestSerializedLobs.java?rev=786218&r1=786217&r2=786218&view=diff
==============================================================================
--- openjpa/branches/1.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestSerializedLobs.java (original)
+++ openjpa/branches/1.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/annotations/TestSerializedLobs.java Thu Jun 18 19:31:41 2009
@@ -134,4 +134,36 @@
assertEquals('a' + (i % 24), str.charAt(i));
em.close();
}
+
+ public void testNullableClob() throws Exception {
+ EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
+
+ AnnoTest1 pc = new AnnoTest1(1);
+ em.persist(pc);
+ em.getTransaction().commit();
+ em.close();
+
+ em = emf.createEntityManager();
+ pc = em.find(AnnoTest1.class, new Long(1));
+ String str = pc.getClob();
+ assertNull(str);
+ em.close();
+ }
+
+ public void testNullableBlob() throws Exception {
+ EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
+
+ AnnoTest1 pc = new AnnoTest1(1);
+ em.persist(pc);
+ em.getTransaction().commit();
+ em.close();
+
+ em = emf.createEntityManager();
+ pc = em.find(AnnoTest1.class, new Long(1));
+ byte[] bl = pc.getBlob();
+ assertNull(bl);
+ em.close();
+ }
}