我有一个非常简单的实体,它使用新的Java 8 Time API。
[1:10]
要正确支持转换,请使用
@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
都不能存储纳秒,但我需要至少毫秒的精度。有没有可能实现这个目标?
如果相关,我使用的是MySQL数据库。
答案 0 :(得分:1)
将列类型更改为
DATETIME(6)
由于DATETIME
的整数性质,你的第二部分失去了
这里有关于该主题的https://dev.mysql.com/doc/refman/8.0/en/fractional-seconds.html
引用
DATETIME(FSP)
fsp值,如果给定,必须在0到6的范围内。值为0 表示没有小数部分。如果省略,则为默认值 精度为0 。 (这与标准SQL默认值6不同,for 与以前的MySQL版本兼容。)