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/04/05 10:58:09 UTC
[openjpa] 01/03: OPENJPA-2555 use a defaultFractionLength of 0 for
backward compat
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 4e59c4836407382f853306dfd0ffbd14cba6e5c1
Author: Mark Struberg <st...@apache.org>
AuthorDate: Fri Apr 5 10:29:27 2019 +0200
OPENJPA-2555 use a defaultFractionLength of 0 for backward compat
This is how the default of MySQL and the previous behaviour of OpenJPA did.
If a user want he can use either @Column(scale=n) or set it via DBDictionary:
openjpa.jdbc.DBDictionary=(defaultFractionLength=6)
---
.../java/org/apache/openjpa/jdbc/sql/DBDictionary.java | 2 +-
.../org/apache/openjpa/jdbc/sql/MariaDBDictionary.java | 2 ++
.../java/org/apache/openjpa/jdbc/sql/MySQLDictionary.java | 2 ++
.../openjpa/persistence/access/TestExplicitAccess.java | 1 +
.../persistence/access/xml/TestXMLExplicitAccess.java | 7 ++-----
.../jdbc/maps/m2mmapex10/TestMany2ManyMapEx10.java | 6 ++++--
.../openjpa/persistence/jdbc/query/TestHintedQuery.java | 4 +++-
.../jdbc/query/TestTemporalTypeQueryParameterBinding.java | 4 +++-
openjpa-project/src/doc/manual/supported_databases.xml | 14 ++++++++++++--
9 files changed, 30 insertions(+), 12 deletions(-)
diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
index ff72cd5..903f3b6 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
@@ -453,7 +453,7 @@ public class DBDictionary
* @see #fractionalTypeNameSet
* @see #getFractionLength(Column, String)
*/
- protected int defaultFractionLength = 6;
+ public int defaultFractionLength = 6;
protected final Set<String> typeModifierSet = new HashSet<>();
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 4443a56..454288c 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
@@ -165,6 +165,8 @@ public class MariaDBDictionary extends DBDictionary {
setTrailingDelimiter(DELIMITER_BACK_TICK);
fixedSizeTypeNameSet.remove("NUMERIC");
+
+ defaultFractionLength = 0;
}
@Override
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 f71425e..256bd36 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
@@ -166,6 +166,8 @@ public class MySQLDictionary
setTrailingDelimiter(DELIMITER_BACK_TICK);
fixedSizeTypeNameSet.remove("NUMERIC");
+
+ defaultFractionLength = 0;
}
@Override
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/access/TestExplicitAccess.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/access/TestExplicitAccess.java
index f7f87b7..1878769 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/access/TestExplicitAccess.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/access/TestExplicitAccess.java
@@ -41,6 +41,7 @@ public class TestExplicitAccess extends SingleEMFTestCase {
@Override
public void setUp() {
setUp(CLEAR_TABLES,
+ "openjpa.jdbc.DBDictionary", "(defaultFractionLength=6)",
PropAccess.class, FieldAccess.class,
DefFieldMixedPropAccess.class , DefPropMixedFieldAccess.class,
AbstractMappedSuperField.class, PropertySub.class,
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/access/xml/TestXMLExplicitAccess.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/access/xml/TestXMLExplicitAccess.java
index 7bc73db..8891028 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/access/xml/TestXMLExplicitAccess.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/access/xml/TestXMLExplicitAccess.java
@@ -33,13 +33,10 @@ public class TestXMLExplicitAccess extends SingleEMFTestCase {
@Override
public void setUp() throws Exception {
- super.setUp();
+ super.setUp(CLEAR_TABLES,
+ "openjpa.jdbc.DBDictionary", "(defaultFractionLength=6)");
}
- @Override
- public void tearDown() throws Exception {
- super.tearDown();
- }
@Override
protected String getPersistenceUnitName() {
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/maps/m2mmapex10/TestMany2ManyMapEx10.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/maps/m2mmapex10/TestMany2ManyMapEx10.java
index 62e7c10..5495d30 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/maps/m2mmapex10/TestMany2ManyMapEx10.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/maps/m2mmapex10/TestMany2ManyMapEx10.java
@@ -59,8 +59,10 @@ public class TestMany2ManyMapEx10 extends SQLListenerTestCase {
@Override
public void setUp() {
- super.setUp(DROP_TABLES,EmployeePK.class, PhonePK.class,
- Employee.class, PhoneNumber.class);
+ super.setUp(DROP_TABLES,
+ "openjpa.jdbc.DBDictionary", "(defaultFractionLength=6)",
+ EmployeePK.class, PhonePK.class,
+ Employee.class, PhoneNumber.class);
createObj();
rsAllPhones = getAll(PhoneNumber.class);
rsAllEmps = getAll(Employee.class);
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestHintedQuery.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestHintedQuery.java
index 43ec1e7..c1165db 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestHintedQuery.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestHintedQuery.java
@@ -38,7 +38,9 @@ public class TestHintedQuery extends SQLListenerTestCase {
@Override
public void setUp() {
- super.setUp(CLEAR_TABLES, TimeKeeper.class);
+ super.setUp(CLEAR_TABLES,
+ "openjpa.jdbc.DBDictionary", "(defaultFractionLength=6)",
+ TimeKeeper.class);
}
public void testHintedQuery() {
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestTemporalTypeQueryParameterBinding.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestTemporalTypeQueryParameterBinding.java
index e6108d9..a4f4c2a 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestTemporalTypeQueryParameterBinding.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestTemporalTypeQueryParameterBinding.java
@@ -63,7 +63,9 @@ public class TestTemporalTypeQueryParameterBinding extends SingleEMFTestCase {
private EntityManager em;
@Override
public void setUp() throws Exception {
- super.setUp(CLEAR_TABLES, TimeKeeper.class, TimeEntity.class);
+ super.setUp(CLEAR_TABLES,
+ "openjpa.jdbc.DBDictionary", "(defaultFractionLength=6)",
+ TimeKeeper.class, TimeEntity.class);
em = emf.createEntityManager();
TimeKeeper pc = new TimeKeeper();
diff --git a/openjpa-project/src/doc/manual/supported_databases.xml b/openjpa-project/src/doc/manual/supported_databases.xml
index d194276..2b13038 100644
--- a/openjpa-project/src/doc/manual/supported_databases.xml
+++ b/openjpa-project/src/doc/manual/supported_databases.xml
@@ -1193,6 +1193,15 @@ The number of fractions can be explicitly set via scale:
<title>
MariaDB
</title>
+ <example id="example_props_mariadb">
+ <title>
+ Example properties for MariaDB
+ </title>
+ <programlisting>
+ openjpa.ConnectionDriverName: org.mariadb.jdbc.Driver
+ openjpa.ConnectionURL: jdbc:mariadb://SERVER_NAME/DB_NAME
+ </programlisting>
+ </example>
<section id="dbsupport_mariadb_issues">
<title>
Known issues with MariaDB
@@ -1201,9 +1210,10 @@ The number of fractions can be explicitly set via scale:
<listitem>
<para>
As of MariaDB 10.2 the <code>DATETIME</code> data type supports sub-second fractions.
- The default of MariaDB is to use no fractions.
+ The default of MariaDB internally is to use no fractions.
The number of fractions can be explicitly set via scale:
- <code>@Column(scale=3)</code> will lead to a <code>DATETIME(3)</code> column.
+ <code>@Column(scale=6)</code> will lead to a <code>DATETIME(6)</code> column and able to store microseconds.
+ A value of <code>@Column(scale=-1)</code> will explicitly turn off all fractions.
</para>
</listitem>