FINERACT-1911: Support timestamp type
This commit is contained in:
+3
-2
@@ -57,7 +57,7 @@ public enum JdbcJavaType {
|
||||
DOUBLE(JavaType.DOUBLE, new DialectType(JDBCType.DOUBLE, null, true, true, "DOUBLE PRECISION", "REAL"),
|
||||
new DialectType(JDBCType.DOUBLE, "DOUBLE PRECISION", "FLOAT8")), //
|
||||
NUMERIC(JavaType.BIGDECIMAL, new DialectType(JDBCType.NUMERIC, true, true), new DialectType(JDBCType.NUMERIC, true, true)), //
|
||||
DECIMAL(JavaType.BIGDECIMAL, new DialectType(JDBCType.DECIMAL, "DECIMAL", true, true, "DEC", "FIXED"),
|
||||
DECIMAL(JavaType.BIGDECIMAL, new DialectType(JDBCType.DECIMAL, null, true, true, "DEC", "FIXED"),
|
||||
new DialectType(JDBCType.DECIMAL, true, true)), //
|
||||
SERIAL(JavaType.INT, new DialectType(JDBCType.INTEGER, "{type} AUTO_INCREMENT", true, false),
|
||||
new DialectType(JDBCType.INTEGER, "SERIAL", "SERIAL4")), //
|
||||
@@ -79,8 +79,9 @@ public enum JdbcJavaType {
|
||||
TIME(JavaType.LOCAL_TIME, new DialectType(JDBCType.TIME), new DialectType(JDBCType.TIME, null, "TIME WITHOUT TIME ZONE")), //
|
||||
TIME_WITH_TIMEZONE(JavaType.OFFSET_TIME, new DialectType(JDBCType.TIME_WITH_TIMEZONE, "TIME"),
|
||||
new DialectType(JDBCType.TIME_WITH_TIMEZONE, null, "TIME WITH TIME ZONE")), //
|
||||
DATETIME(JavaType.LOCAL_DATETIME, new DialectType(JDBCType.TIMESTAMP, "DATETIME", "TIMESTAMP"),
|
||||
TIMESTAMP(JavaType.LOCAL_DATETIME, new DialectType(JDBCType.TIMESTAMP),
|
||||
new DialectType(JDBCType.TIMESTAMP, null, "TIMESTAMP WITHOUT TIME ZONE")), //
|
||||
DATETIME(JavaType.LOCAL_DATETIME, new DialectType(JDBCType.TIMESTAMP, "DATETIME"), new DialectType(JDBCType.TIMESTAMP)), //
|
||||
TIMESTAMP_WITH_TIMEZONE(JavaType.OFFSET_DATETIME, new DialectType(JDBCType.TIMESTAMP_WITH_TIMEZONE, null, "DATETIME"),
|
||||
new DialectType(JDBCType.TIMESTAMP_WITH_TIMEZONE, null, "TIMESTAMP WITH TIME ZONE", "TIMESTAMPTZ")), //
|
||||
INTERVAL(JavaType.TIME, new DialectType(JDBCType.TIME), new DialectType(JDBCType.TIME, "INTERVAL")), //
|
||||
|
||||
+3
-1
@@ -24,6 +24,7 @@ import static org.apache.fineract.infrastructure.core.service.database.JdbcJavaT
|
||||
import static org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.DECIMAL;
|
||||
import static org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.INTEGER;
|
||||
import static org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.TEXT;
|
||||
import static org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.TIMESTAMP;
|
||||
import static org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.VARCHAR;
|
||||
import static org.apache.fineract.infrastructure.dataqueries.api.DataTableApiConstant.API_FIELD_AFTER;
|
||||
import static org.apache.fineract.infrastructure.dataqueries.api.DataTableApiConstant.API_FIELD_CODE;
|
||||
@@ -332,7 +333,8 @@ public class DatatableCommandFromApiJsonDeserializer {
|
||||
case API_FIELD_TYPE_BOOLEAN -> BOOLEAN;
|
||||
case API_FIELD_TYPE_DECIMAL -> DECIMAL;
|
||||
case API_FIELD_TYPE_DATE -> DATE;
|
||||
case API_FIELD_TYPE_DATETIME, API_FIELD_TYPE_TIMESTAMP -> DATETIME;
|
||||
case API_FIELD_TYPE_DATETIME -> DATETIME;
|
||||
case API_FIELD_TYPE_TIMESTAMP -> TIMESTAMP;
|
||||
case API_FIELD_TYPE_TEXT -> TEXT;
|
||||
default -> throw new PlatformDataIntegrityException("error.msg.datatable.column.type.invalid",
|
||||
"Column type " + apiType + " is not supported.");
|
||||
|
||||
+2
-1
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.dataqueries.service;
|
||||
import static java.lang.String.format;
|
||||
import static org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.DATE;
|
||||
import static org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.DATETIME;
|
||||
import static org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.TIMESTAMP;
|
||||
import static org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeaderData.DisplayType.CODELOOKUP;
|
||||
import static org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeaderData.DisplayType.DECIMAL;
|
||||
import static org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeaderData.DisplayType.INTEGER;
|
||||
@@ -152,7 +153,7 @@ public class GenericDataServiceImpl implements GenericDataService {
|
||||
if (colType == DATE) {
|
||||
Date tmpDate = (Date) rs.getObject(columnName);
|
||||
columnValues.add(tmpDate == null ? null : tmpDate.toLocalDate());
|
||||
} else if (colType == DATETIME) {
|
||||
} else if (colType == DATETIME || colType == TIMESTAMP) {
|
||||
Object tmpDate = rs.getObject(columnName);
|
||||
columnValues.add(
|
||||
tmpDate == null ? null : (tmpDate instanceof Timestamp ? ((Timestamp) tmpDate).toLocalDateTime() : tmpDate));
|
||||
|
||||
Reference in New Issue
Block a user