[英]Java Spring - MySQL timestamp field and millisecond precision
我试图以毫秒精度在MySQL数据库中存储一些时间信息。 我要存储的格式是2015-08-13 10:56:24.570
。
问题是,我必须创建具有长度属性的表列(3或6,取决于小数部分)。 我用Java Spring Framework编写的应用程序会自动创建mysql表,如果它之前没有创建的话。 但我无法设置日期字段的长度属性。
“ @Column
注释具有长度参数,但只有String字段才有。” 春天Jpa的文件说。
另一个有趣的部分是我无法使用@Temporal
注释。 我的IDE给出了一个错误:“此位置不允许注释@Temporal
”。 我想知道为什么我也给出了这个错误。
任何帮助对我来说都很棒。
编辑:我的Java代码用于创建mysql表
@Entity
@Table(name = "dbTable")
public class Report
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "myDate", nullable = false, length = 6)
private java.util.Date date;
// Getters Setters etc.
}
制作类型的列
的java.sql.Timestamp
同时在MySQL中存储与时间相关的信息。
简单示例: -
public static void main(String[] args){
System.out.println(java.sql.Timestamp.valueOf("2013-10-10 10:49:29.12000"));
}
Output:- 2013-10-10 10:49:29.12
阅读本文 ,如果有帮助的话。
将列类型从java.util.Timestamp更改为java.sql.Timestamp。
我意识到这是一个很老的帖子,但我遇到了同样的问题,想出了解决方法。 这是我的实体看起来像:
@Entity
@Table(name = "ActivityLog")
public class ActivityLogBean {
@Basic
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date alDateTime;
}
我在“@Temporal(TemporalType.TIMESTAMP)”行上收到错误消息“对此位置禁止注释@Temporal”。
问题与我导入的Temporal类有关,当我遇到问题时我使用的import语句是:
import org.springframework.data.jpa.repository.Temporal;
我将导入更改为以下内容,错误消失了:
import javax.persistence.Temporal;
这是我现在的全职工作班:
package com.mypackage.beans;
import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(name = "ActivityLog")
public class ActivityLogBean {
@Basic
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date alDateTime;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.