MYSQL 8 JPA 2.0 mysql добавляет 1 секунду к текущей дате после сохранения JPA - PullRequest
0 голосов
/ 08 ноября 2019

Я перенес версию mysql с 5.5.40 на 8.0.18. После миграции я изменил конфигурацию источника данных JBoss 6 для класса драйвера.

        <driver-class>com.mysql.cj.jdbc.Driver</driver-class>

Я поместил mysql-connector-java-8.0.18 в папку lib. Затем мои приложения развертываются на Jboss 6 без проблем. Когда я начинаю тестировать приложение, я что-то нашел. Что касается сущности задания имитации, я установил в столбце startDateTime дату. После сохранения задания симуляции в базе данных startDateTime отличается от того, который я установил. Но есть только одна секунда разница. Например, если я установил дату 2019-11-08 15:20:12, база данных хранит ее 2019-11-08 15:20:13. Я не уверен, что это связано с часовым поясом. Но в любом случае я изменил часовой пояс mysql, используя следующее утверждение.

SET GLOBAL time_zone = '+3: 00';

 @Entity
@Table(name = "SIMULATION_JOB")
public class SimulationJob implements Serializable {
/**
 *
 */
       private static final long serialVersionUID = -1768265008703114922L;

public SimulationJob() {
    super();
}

@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "SimulationJobIdGen")
@Column(name = "ID")
private long id;
@Column(name = "NAME")
@NotNull
@Size(max = 50)
private String name;
@Column(name = "PRIORITY")
private int priority;
@ManyToOne
@JoinColumn(name = "OWNER_USER_ID")
private User ownerUser;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATE_DATETIME")
private Date createDateTime;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "START_DATETIME")
private Date startDateTime;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "END_DATETIME")
private Date endDateTime;

}

1 Ответ

0 голосов
/ 08 ноября 2019

Я думаю, это может быть связано с округлением отметки времени. До MySQL 5.6.4 обработка дробных секунд (то есть миллисекунд) была другой.

См. Также:

https://dev.mysql.com/doc/refman/8.0/en/fractional-seconds.html

https://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

...