Hibernate guarda / recupera la fecha menos el día si la aplicación usa otra zona horaria distinta de MySQL

Tengo una aplicación iniciada en tomcat en MACHINE_A con la zona horaria GMT + 3.

Uso un servidor MySQL remoto iniciado en MACHINE_B con la zona horaria UTC.

Usamos spring-data-jpa para la persistencia.

Como ejemplo del problema, mostraré el repositorio:

public interface MyRepository extends JpaRepository<MyInstance, Long> {
    Optional<MyInstance> findByDate(LocalDate localDate);
}

Si paso localDate para2018-09-06, Obtengo entidades donde la fecha es2018-09-05(el día anterior

En los registros que veo:

2018-09-06 18:17:27.783 TRACE 13676 --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [DATE] - [2018-09-06]

Googleé mucho esa pregunta y encontré varios artículos con el mismo contenido (por ejemplo,https: //moelholm.com/2016/11/09/spring-boot-controlling-timezones-with-hibernate)

Entonces, tengo el siguienteapplication.yml:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/MYDB?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC
    username: root
    password: *****
  jpa:
    hibernate:
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
    properties:
      hibernate:
        show_sql: true
        use_sql_comments: true
        format_sql: true
        type: trace
        jdbc:
          time_zone: UTC

Pero no ayuda.

Utilizamos el siguiente conector:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.12</version>
</dependency>

¿Cómo puedo resolver mi problema?

PD

Intenté ejecutar ambas aplicaciones con la misma zona horaria. En este caso, todo funciona como se esperaba.

P.S.2

Intenté usar la versión 6.0.6 del controlador MySQL pero no cambia nada.

Respuestas a la pregunta(6)

Su respuesta a la pregunta