簡體   English   中英

Java Spring - MySQL時間戳字段和毫秒精度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM