Skip to content

Commit

Permalink
OracleDialect - override Driver Type Conversion for Dates
Browse files Browse the repository at this point in the history
Fixes #754
  • Loading branch information
jfcabral committed Jul 28, 2018
1 parent 1907283 commit 9a64889
Showing 1 changed file with 16 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,11 @@
*/
package org.javalite.activejdbc.dialects;

import java.util.List;
import org.javalite.activejdbc.MetaModel;
import org.javalite.common.Convert;

import java.sql.Timestamp;
import java.util.List;

/**
* @author Igor Polevoy
Expand Down Expand Up @@ -77,6 +80,18 @@ public String formSelect(String tableName, String[] columns, String subQuery, Li
return fullQuery.toString();
}

@Override
public Object overrideDriverTypeConversion(MetaModel mm, String attributeName, Object value) {
// Oracle returns java.sql.Timestamp for DATE values
if (value instanceof Timestamp) {
String typeName = mm.getColumnMetadata().get(attributeName).getTypeName();
if ("DATE".equalsIgnoreCase(typeName)) {
return Convert.toSqlDate(value);
}
}
return value;
}

@Override
protected void appendEmptyRow(MetaModel metaModel, StringBuilder query) {
query.append('(').append(metaModel.getIdName()).append(") VALUES (")
Expand Down

0 comments on commit 9a64889

Please sign in to comment.