当前位置: 首页 > 知识库问答 >
问题:

表创建失败

景俊拔
2023-03-14

我正在使用一个H2数据库来测试我的Grails应用程序。我有一些简单的领域类,比如:

package mypackage

class UserSession {
    User user
    String sessionTokenHash

    // last seen info
    String lastSeenIP
    Date lastSeenTime
    String lastSeenUserAgent
    String lastSeenURL
}

但是,表似乎没有正确创建。

hbm2ddl.SchemaExport Unsuccessful: create table user_session (id bigint not null auto_increment, version bigint not null, last_seenip varchar(255) not null, last_seen_time datetime not null, last_seenurl varchar(255) not null, last_seen_user_agent varchar(255) not null, session_token_hash varchar(255) not null, user_id bigint not null, primary key (id)) ENGINE=InnoDB
hbm2ddl.SchemaExport Syntax error in SQL statement "CREATE TABLE USER_SESSION (ID BIGINT NOT NULL AUTO_INCREMENT, VERSION BIGINT NOT NULL, LAST_SEENIP VARCHAR(255) NOT NULL, LAST_SEEN_TIME DATETIME NOT NULL, LAST_SEENURL VARCHAR(255) NOT NULL, LAST_SEEN_USER_AGENT VARCHAR(255) NOT NULL, SESSION_TOKEN_HASH VARCHAR(255) NOT NULL, USER_ID BIGINT NOT NULL, PRIMARY KEY (ID)) ENGINE=[*]INNODB "; expected "identifier"; SQL statement:
create table user_session (id bigint not null auto_increment, version bigint not null, last_seenip varchar(255) not null, last_seen_time datetime not null, last_seenurl varchar(255) not null, last_seen_user_agent varchar(255) not null, session_token_hash varchar(255) not null, user_id bigint not null, primary key (id)) ENGINE=InnoDB [42001-147]

它设置为在create-drop模式下使用临时内存中的H2数据库。

共有1个答案

丁兴德
2023-03-14

我用错了方言;我的dataSource.groovy在dataSource块中设置了以下方言:

dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"

我为开发数据源添加了以下一行:

dialect = "org.hibernate.dialect.H2Dialect"

这样就解决了问题。

 类似资料:
  • 我在我们的测试Databse上用Liqibase创建了一个表,我们没有问题创建下表: 如果我在客户数据库上运行此语句,则错误如下: DB2 SQL 错误: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=(;LT 当前时间戳;DEFAULT, DRIVER=4.13.127 有什么建议吗?

  • 我使用poi-jar创建.xlsx文件,poi-3.15.jar,poi-ooxml-

  • 我对spring JPA、Hibernate、MySQL有一个问题。我有一个实体(nom.java)和存储库(公共接口NomRepository扩展了JpaRepository)。它们被创造和注入都很好。 问题是,当我试图通过Repository的save方法保存一个记录时,spring抱怨说“表''不存在”。事实上,我在MySQL中看不到这个表。您尝试了不同值的hibernate.hbm2ddl

  • 我试图使用以下命令创建一个新表: 我指定了我想要的主键,我只使用主键进行了聚类顺序,但它仍然get and error。我怎么解决这个?

  • 我的问题是这样的:我想创建一个非常简单的应用程序,当我按下按钮时,它会播放一首歌。 当我运行应用程序并按下“声音”按钮时,它会显示“错误”(因为我检查了是否为空) 所以,我想这意味着我创建的MediaPLayer为空。我检查了logcat,它显示了以下内容: 我想这意味着创建失败了,因为准备失败了,但为什么呢?我已经在这个网站上搜索了这个问题,找到了100个不同的案例,但没有一个解决方案对我有效。