Grails 抛出错误 hbm2ddl.SchemaExport - HHH000389:不成功

Posted

技术标签:

【中文标题】Grails 抛出错误 hbm2ddl.SchemaExport - HHH000389:不成功【英文标题】:Grails throws ERROR hbm2ddl.SchemaExport - HHH000389: Unsuccessful 【发布时间】:2015-01-12 06:37:30 【问题描述】:

在此错误出现之前“我记得”的最后一件事是更新到 openjdk8

Error 2015-01-12 14:19:44,751 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - HHH000389: Unsuccessful: create table post (id bigint generated by default as identity, version bigint not null, content varchar(255) not null, limit integer not null, posted_date timestamp not null, poster varchar(255) not null, title varchar(255) not null, primary key (id))
| Error 2015-01-12 14:19:44,755 [localhost-startStop-1] ERROR hbm2ddl.SchemaExport  - Syntax error in SQL statement "CREATE TABLE POST (ID BIGINT GENERATED BY DEFAULT AS IDENTITY, VERSION BIGINT NOT NULL, CONTENT VARCHAR(255) NOT NULL, LIMIT[*] INTEGER NOT NULL, POSTED_DATE TIMESTAMP NOT NULL, POSTER VARCHAR(255) NOT NULL, TITLE VARCHAR(255) NOT NULL, PRIMARY KEY (ID)) "; expected "identifier"; SQL statement:
create table post (id bigint generated by default as identity, version bigint not null, content varchar(255) not null, limit integer not null, posted_date timestamp not null, poster varchar(255) not null, title varchar(255) not null, primary key (id)) [42001-176]
| Server running. Browse to http://localhost:8080/brewee

环境

Ubuntu 14.04 Grails 2.4.4 javac 1.8.0_25

数据源

dataSource 
    pooled = true
    jmxExport = true
    driverClassName = "org.h2.Driver"
    username = "sa"
    password = ""

hibernate 
    cache.use_second_level_cache = true
    cache.use_query_cache = false
//    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
    cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
    singleSession = true // configure OSIV singleSession mode
    flush.mode = 'manual' // OSIV session flush mode outside of transactional context


development 
        dataSource 
            dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"
        
    

我是 grails 的新手。认为我做了一些关闭这个内存数据库的事情是否正确?我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

放H2方言

dialect = "org.hibernate.dialect.H2Dialect"

在 DataSource.groovy 文件的 dataSource 块中。它应该可以解决您的问题。

确保您没有遇到This 问题。

【讨论】:

以上是关于Grails 抛出错误 hbm2ddl.SchemaExport - HHH000389:不成功的主要内容,如果未能解决你的问题,请参考以下文章

在 grails gsp 模板中,如何使用服务器端注释而不使站点网格抛出错误?

Grails 服务器发送事件

为啥grails在第一次访问hasMany关系时抛出空指针异常?

在Grails中使用带有rest配置文件的gson时,String列表抛出ClassCastException

如何知道验证错误的原因

Grails3文件上传maxFileSize限制