Spring JPA错误日期通过serverTimezone EDT

时间:2019-03-15 12:17:18

标签: mysql spring

我有一个jpa存储库,其使用方式如下所示:

@Repository
public interface MyRepository extends JpaRepository<MyObject, Long> {

    @Query("select m from MyObject m WHERE m.date = :date")
    MyObject findByDate(@Param("date") LocalDate date);
}


 MyObject myObject = myRepository.findByDate(LocalDate.now());
        if (myObject == null) {
           MyObject myObject = new MyObjec();
            myObject.setDate(LocalDate.now());
            myRepository.save(myObject);
        } else {
            myObject.setSomethingElse(something)
            myRepository.save(myObject);
        }

mysql服务器的时区有问题。查询“ SELECT @@ system_time_zone”返回“ EDT”。我正在与数据库在同一台服务器上运行我的应用程序。

每次尝试保留我的对象日期时,都会坚持将其日期提前一天(例如,我保留“ 2019-03-15”,并将其存储为“ 2019-03-14”)。因此,每次调用我的方法时,都会创建一个新对象,因为找不到当前日期。

我一直试图将GLOBAL time_zone从'-12:00'设置为'+12:00',将参数添加到jdbc网址中,例如:

  • useJDBCCompliantTimezoneShift = true
  • useLegacyDatetimeCode = false
  • serverTimezone = UTC

对我没有任何帮助。我的数据库是mysql Ver 14.14 Distrib 5.6.43,我正在使用:

mysql-connector-java 8.0.13 具有所有依赖项的Spring Boot 2.0.4.RELEASE com.mysql.cj.jdbc.Driver

但是我也尝试了旧版本的mysql-connector-java 5.1.47

0 个答案:

没有答案