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);
+ }
}