From 4d3f6857b9ea4de2bfe3456463323bdfaae3090a Mon Sep 17 00:00:00 2001 From: Henrique Prange Date: Tue, 10 Jun 2014 16:44:04 -0300 Subject: [PATCH] Add support for CLOB attributes in DerbyPlugIn Fetching data from CLOB attributes always returns null when using the Derby database. This patch returns a java.sql.Clob or the String representation of the CLOB column in the result set. --- .../webobjects/jdbcadaptor/_DerbyPlugIn.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Frameworks/PlugIns/DerbyPlugIn/Sources/com/webobjects/jdbcadaptor/_DerbyPlugIn.java b/Frameworks/PlugIns/DerbyPlugIn/Sources/com/webobjects/jdbcadaptor/_DerbyPlugIn.java index fdadfa8970e..6538b8a31af 100644 --- a/Frameworks/PlugIns/DerbyPlugIn/Sources/com/webobjects/jdbcadaptor/_DerbyPlugIn.java +++ b/Frameworks/PlugIns/DerbyPlugIn/Sources/com/webobjects/jdbcadaptor/_DerbyPlugIn.java @@ -4,6 +4,9 @@ import java.io.InputStream; import java.lang.reflect.Method; import java.math.BigDecimal; +import java.sql.Clob; +import java.sql.ResultSet; +import java.sql.SQLException; import java.sql.Timestamp; import com.webobjects.eoaccess.EOAdaptor; @@ -380,6 +383,21 @@ public Class defaultExpressionClass() { return DerbyExpression.class; } + @Override + public Object fetchCLOB(ResultSet resultSet, int column, EOAttribute attribute, boolean materialize) throws SQLException { + Clob clob = resultSet.getClob(column); + + if (clob == null) { + return null; + } + + if (!materialize) { + return clob; + } + + return clob.getSubString(1L, (int)clob.length()); + } + /** * This is usually extracted from the the database using JDBC, but this is * really inconvenient for users who are trying to generate SQL at some. A