HHH-13582 Upgrade MySQL Connector/J to 8.0.17
ConnectorJ 8 is the version used in WildFly integration tests.
ConnectorJ 5 is apparently no longer tested.
Note this solves most timezone-related issues we've been having.
(cherry picked from commit be7cc76556
)
This commit is contained in:
parent
5274f15ef5
commit
52bdda7d40
|
@ -110,8 +110,7 @@ ext {
|
|||
hsqldb: "org.hsqldb:hsqldb:2.3.2",
|
||||
derby: "org.apache.derby:derby:10.11.1.1",
|
||||
postgresql: 'org.postgresql:postgresql:42.2.2',
|
||||
//Upgrade MySQL Driver only when this issue gets fixed: https://bugs.mysql.com/bug.php?id=85941
|
||||
mysql: 'mysql:mysql-connector-java:5.1.46',
|
||||
mysql: 'mysql:mysql-connector-java:8.0.17',
|
||||
mariadb: 'org.mariadb.jdbc:mariadb-java-client:2.2.3',
|
||||
|
||||
oracle: 'com.oracle.jdbc:ojdbc8:12.2.0.1',
|
||||
|
|
|
@ -24,9 +24,7 @@ import org.hibernate.Transaction;
|
|||
import org.hibernate.boot.MetadataBuilder;
|
||||
import org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl;
|
||||
import org.hibernate.dialect.Dialect;
|
||||
import org.hibernate.dialect.MySQL57Dialect;
|
||||
import org.hibernate.dialect.MySQL8Dialect;
|
||||
import org.hibernate.dialect.MySQLDialect;
|
||||
import org.hibernate.dialect.MySQL5Dialect;
|
||||
import org.hibernate.dialect.Oracle10gDialect;
|
||||
import org.hibernate.query.Query;
|
||||
import org.hibernate.tool.hbm2ddl.SchemaExport;
|
||||
|
@ -373,7 +371,7 @@ public class EntityTest extends BaseNonConfigCoreFunctionalTestCase {
|
|||
@SkipForDialect(value = Oracle10gDialect.class, comment = "oracle12c returns time in getDate. For now, skip.")
|
||||
public void testTemporalType() throws Exception {
|
||||
|
||||
final ZoneId zoneId = ( Dialect.getDialect() instanceof MySQL8Dialect ) ? ZoneId.of( "UTC")
|
||||
final ZoneId zoneId = ( Dialect.getDialect() instanceof MySQL5Dialect ) ? ZoneId.of( "UTC")
|
||||
: ZoneId.systemDefault();
|
||||
|
||||
Flight airFrance = doInHibernate( this::sessionFactory, session -> {
|
||||
|
|
|
@ -30,11 +30,20 @@ public class MySQLSkipAutoCommitTest extends AbstractSkipAutoCommitTest {
|
|||
if ( getDialect() instanceof MariaDBDialect ) {
|
||||
dataSource = ReflectionUtil.newInstance( "org.mariadb.jdbc.MariaDbDataSource" );
|
||||
}
|
||||
else if ( getDialect() instanceof MySQL8Dialect ) {
|
||||
dataSource = ReflectionUtil.newInstance( "com.mysql.cj.jdbc.MysqlDataSource" );
|
||||
}
|
||||
else if ( getDialect() instanceof MySQLDialect ) {
|
||||
dataSource = ReflectionUtil.newInstance( "com.mysql.jdbc.jdbc2.optional.MysqlDataSource" );
|
||||
try {
|
||||
// ConnectorJ 8
|
||||
dataSource = ReflectionUtil.newInstance( "com.mysql.cj.jdbc.MysqlDataSource" );
|
||||
}
|
||||
catch (IllegalArgumentException e) {
|
||||
try {
|
||||
// ConnectorJ 5
|
||||
dataSource = ReflectionUtil.newInstance( "com.mysql.jdbc.jdbc2.optional.MysqlDataSource" );
|
||||
} catch (Exception e2) {
|
||||
e2.addSuppressed( e );
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
ReflectionUtil.setProperty( dataSource, "url", Environment.getProperties().getProperty( AvailableSettings.URL ) );
|
||||
ReflectionUtil.setProperty( dataSource, "user", Environment.getProperties().getProperty( AvailableSettings.USER ) );
|
||||
|
|
|
@ -9,6 +9,7 @@ package org.hibernate.test.temporal;
|
|||
import java.sql.Time;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.Id;
|
||||
|
@ -36,7 +37,11 @@ public class TimePropertyTest extends BaseCoreFunctionalTestCase {
|
|||
@Test
|
||||
public void testTimeAsDate() {
|
||||
final Entity eOrig = new Entity();
|
||||
eOrig.tAsDate = new Time( new Date().getTime() );
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
// See javadoc for java.sql.Time: 'The date components should be set to the "zero epoch" value of January 1, 1970 and should not be accessed'
|
||||
// Other dates can potentially lead to errors in JDBC drivers, in particular MySQL ConnectorJ 8.x.
|
||||
calendar.set( 1970, Calendar.JANUARY, 1 );
|
||||
eOrig.tAsDate = new Time( calendar.getTimeInMillis() );
|
||||
|
||||
Session s = openSession();
|
||||
s.getTransaction().begin();
|
||||
|
|
|
@ -4,4 +4,4 @@
|
|||
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||
*/
|
||||
jdbcDependency "mysql:mysql-connector-java:5.1.15"
|
||||
jdbcDependency "mysql:mysql-connector-java:8.0.17"
|
||||
|
|
Loading…
Reference in New Issue