This is an automated email from the ASF dual-hosted git repository.
adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new c7300fd52 FINERACT-1911: Support timestamp type
c7300fd52 is described below
commit c7300fd526fc2cd3214df5cef3723f874a95aee1
Author: jmarta <[email protected]>
AuthorDate: Fri Aug 18 14:14:13 2023 +0200
FINERACT-1911: Support timestamp type
---
.../fineract/infrastructure/core/service/database/JdbcJavaType.java | 5 +++--
.../core/serialization/DatatableCommandFromApiJsonDeserializer.java | 4 +++-
.../infrastructure/dataqueries/service/GenericDataServiceImpl.java | 3 ++-
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java
index fc43db9a1..76bb960ee 100644
---
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java
+++
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java
@@ -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")), //
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/serialization/DatatableCommandFromApiJsonDeserializer.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/serialization/DatatableCommandFromApiJsonDeserializer.java
index 1989ba82d..0a8f20068 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/serialization/DatatableCommandFromApiJsonDeserializer.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/serialization/DatatableCommandFromApiJsonDeserializer.java
@@ -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.");
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataServiceImpl.java
index 924d62d3b..50722954c 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataServiceImpl.java
@@ -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));