我在数据库中有一个列,它在实体类中定义如下:
@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”附近使用的正确语法,
无法理解为什么会增加额外的滴答,以及如何避免。
该版本的详细内容如下:
<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>发布于 2016-01-25 13:23:37
请删除以下配置行:
<property name="hibernate.globally_quoted_identifiers">true</property>这很可能是不需要的,而且几乎肯定会导致你所经历的问题。
更新:
通过将方言从泛型MySQL5改为MySQL,最终解决了这个问题:
org.hibernate.dialect.MySQL5Dialecthttps://stackoverflow.com/questions/34991684
复制相似问题