Java 8 Time API с Hibernate с точностью до миллисекунды / наносекунды - PullRequest
0 голосов
/ 12 мая 2018

У меня есть очень простая сущность, которая использует новый Java 8 Time API.

@Entity
@Table(name = "event")
public class Event {

    @Id
    @GeneratedValue
    @Column(name = "id")
    private long id;

    @Column(name = "time")
    private LocalDateTime time;

    // ommitted
}

Для правильной поддержки преобразования я использую

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-java8</artifactId>
    <version>5.1.0.Final</version>
</dependency>

Однако записи в базе данныхсохраняются как 2018-05-12 22:24:31, что полностью забывает наносекунды с LocalTime.Я знаю, что ни Timestamp, ни Date не могут хранить наносекунды, но мне нужна точность не менее миллисекунды.Есть ли возможность достичь этого?

Если уместно, я использую базу данных MySQL.

1 Ответ

0 голосов
/ 13 мая 2018

Изменить тип столбца на

DATETIME(6) 

так как ваша вторая фракция в настоящий момент теряется из-за целочисленной природы DATETIME Здесь у вас есть документация по MySQL для этой темы

Цитирование

DATETIME (ППБ)

Значение fsp, если оно задано, должно находиться в диапазоне от 0 до 6. Значение 0 означает, что нет дробной части. Если опущено, по умолчанию Точность 0 . (Это отличается от стандартного SQL по умолчанию 6, для совместимость с предыдущими версиями MySQL.)

...