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 <[email protected]> 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>
