我有一个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网址中,例如:
对我没有任何帮助。我的数据库是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