You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by st...@apache.org on 2019/01/29 13:53:12 UTC

[openjpa] 01/05: OPENJPA-2713 add java8 time support for MySQL and MariaDB

This is an automated email from the ASF dual-hosted git repository.

struberg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit 362474e5c93fc0dd73907e16929f55450d9d92e1
Author: Mark Struberg <st...@apache.org>
AuthorDate: Fri Jan 25 21:37:16 2019 +0100

    OPENJPA-2713 add java8 time support for MySQL and MariaDB
---
 .../java/org/apache/openjpa/jdbc/sql/MariaDBDictionary.java | 12 +++++++++++-
 .../java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java   | 13 ++++++++++++-
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MariaDBDictionary.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MariaDBDictionary.java
index be9b51d..106bc5b 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MariaDBDictionary.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MariaDBDictionary.java
@@ -344,8 +344,18 @@ public class MariaDBDictionary extends DBDictionary {
 
     @Override
     public int getPreferredType(int type) {
-        if (type == Types.CLOB && !useClobs)
+        if (type == Types.CLOB && !useClobs) {
             return Types.LONGVARCHAR;
+        }
+        else if (type == Types.TIME_WITH_TIMEZONE) {
+            // MariaDB doesn't support SQL-2003 'WITH TIMEZONE' nor the respective JDBC types.
+            return Types.TIME;
+        }
+        else if (type == Types.TIMESTAMP_WITH_TIMEZONE) {
+            // MariaDB doesn't support SQL-2003 'WITH TIMEZONE' nor the respective JDBC types.
+            return Types.TIMESTAMP;
+        }
+
         return super.getPreferredType(type);
     }
 
diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java
index 4d061f2..ccd63d4 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java
@@ -366,11 +366,22 @@ public class MySQLDictionary
 
     @Override
     public int getPreferredType(int type) {
-        if (type == Types.CLOB && !useClobs)
+        if (type == Types.CLOB && !useClobs) {
             return Types.LONGVARCHAR;
+        }
+        else if (type == Types.TIME_WITH_TIMEZONE) {
+            // MySQL doesn't support SQL-2003 'WITH TIMEZONE' nor the respective JDBC types.
+            return Types.TIME;
+        }
+        else if (type == Types.TIMESTAMP_WITH_TIMEZONE) {
+            // MySQL doesn't support SQL-2003 'WITH TIMEZONE' nor the respective JDBC types.
+            return Types.TIMESTAMP;
+        }
+
         return super.getPreferredType(type);
     }
 
+
     /**
      * Append XML comparison.
      *