【发布时间】:2018-03-04 15:29:06
【问题描述】:
我在数据库中有一个列,在实体类中定义如下:
@Column(name="lastlogindate", columnDefinition ="TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
private Timestamp lastlogindate;
正在生成的create table命令如下:
create table usermaster (
lastlogindate `TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP`)
虽然有效的是
create table usermaster (
lastlogindate TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
Hibernate 创建表时报如下错误:
您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在 '
TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP附近使用的正确语法,
无法理解为什么要添加额外的刻度以及如何避免它。
版本详情如下:
- 休眠版本:4.3.8.Final
- MySQL 版本:5.6.26
- MySQL 方言信息:
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="current_session_context_class">thread</property>
<property name="show_sql">true</property>
<property name="hibernate.connection.autocommit ">false</property>
<property name="hibernate.globally_quoted_identifiers">true</property>
【问题讨论】:
-
我找不到那些多余的字符。
-
我明白了。我们将需要您的: MySQL 数据源配置(特别是如果配置了任何方言);确切的休眠版本; MySQL 版本。
-
已更新问题描述中询问的信息。