Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TemporalType.TIMESTAMP精度的Hibernate注释_Java_Mysql_Database_Hibernate_Hibernate Annotations - Fatal编程技术网

Java TemporalType.TIMESTAMP精度的Hibernate注释

Java TemporalType.TIMESTAMP精度的Hibernate注释,java,mysql,database,hibernate,hibernate-annotations,Java,Mysql,Database,Hibernate,Hibernate Annotations,我正在用Java中的Hibernate for MySQL数据库创建一个表 其中一列为日期类型 @Temporal( TemporalType.TIMESTAMP ) @Column( name = "event_start_time", nullable = false, length = 19 ) public Date getEventStartTime() { return eventStartTime; } 我知道可以使用 TIMESTAMP(6) 但是,在Hibernat

我正在用Java中的Hibernate for MySQL数据库创建一个表

其中一列为日期类型

@Temporal( TemporalType.TIMESTAMP )
@Column( name = "event_start_time", nullable = false, length = 19 )
public Date getEventStartTime()
{
    return eventStartTime;
}
我知道可以使用

TIMESTAMP(6)
但是,在Hibernate注释映射中如何做到这一点?我试过了

length = 19, precision = 38, scale = 20
所有这些似乎都无法以毫秒为单位存储秒后的时间

1374839856000
相对于

1374839855789

有人知道这个问题的解决办法吗?谢谢你的帮助

对在属性hibernate.dialogue中配置的类进行子类化,然后在那里更改使用的数据类型。将hibernate.dialogue属性设置为新类

这就是我的工作原理(从MySQL 5.6.4开始):


我认为您必须将列类型更改为datetime。我不相信有临时类型。datetime,Hibernate中只有日期或时间。这里有点混乱,
1374839856000
需要您,但您得到了
1374839855789
。对吗?或者别的什么…不,我的意思是我想要1374839855789,但我想要的是1374839856000,真的没有其他解决方案吗?这看起来更像是一种解决办法。为什么这么难?在我看来,时间戳的精确性似乎是一种常见的设置
public class MySQL564InnoDBDialect extends MySQL5InnoDBDialect {

    protected void registerColumnType(int code, String name) {
        if (code == Types.TIMESTAMP) {
            super.registerColumnType(code, "TIMESTAMP(6)");
        } else {
            super.registerColumnType(code, name);
        }
    }
}