Author: mikedd
Date: Tue Oct 19 17:57:04 2010
New Revision: 1024340

URL: http://svn.apache.org/viewvc?rev=1024340&view=rev
Log:
OPENJPA-1841: Use length() function to determine BLOB/CLOB nullity for Oracle. 

Modified:
    
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedLobFieldStrategy.java
    
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java

Modified: 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedLobFieldStrategy.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedLobFieldStrategy.java?rev=1024340&r1=1024339&r2=1024340&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedLobFieldStrategy.java
 (original)
+++ 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedLobFieldStrategy.java
 Tue Oct 19 17:57:04 2010
@@ -238,18 +238,6 @@ abstract class MaxEmbeddedLobFieldStrate
         return res.getObject(col, null, joins);
     }
 
-    public void appendIsNull(SQLBuffer sql, Select sel, Joins joins) {
-        joins = join(joins, false);
-        sql.append(sel.getColumnAlias(field.getColumns()[0], joins)).
-            append(" IS ").appendValue(null, field.getColumns()[0]);
-    }
-
-    public void appendIsNotNull(SQLBuffer sql, Select sel, Joins joins) {
-        joins = join(joins, false);
-        sql.append(sel.getColumnAlias(field.getColumns()[0], joins)).
-            append(" IS NOT ").appendValue(null, field.getColumns()[0]);
-    }
-
     public Joins join(Joins joins, boolean forceOuter) {
         return field.join(joins, forceOuter, false);
     }

Modified: 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java?rev=1024340&r1=1024339&r2=1024340&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java
 (original)
+++ 
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java
 Tue Oct 19 17:57:04 2010
@@ -1365,4 +1365,24 @@ public class OracleDictionary
             isJDBC4 = false;
         }
     }
+    
+    @Override
+    public String getIsNullSQL(String colAlias, int colType)  {
+        switch(colType) {
+            case Types.BLOB:
+            case Types.CLOB:
+                return String.format("length (%s) = 0", colAlias);
+        }
+        return super.getIsNullSQL(colAlias, colType);
+    }
+    
+    @Override
+    public String getIsNotNullSQL(String colAlias, int colType) { 
+        switch(colType) { 
+            case Types.BLOB: 
+            case Types.CLOB:
+                return String.format("length (%s) != 0 ",  colAlias);
+        }
+        return super.getIsNotNullSQL(colAlias, colType);
+    }
 }


Reply via email to