繁体   English   中英

使用 Hibernate 和 H2 创建表时出错

[英]Table creation error using Hibernate and H2

我正在尝试运行一个使用 H2 内存数据库和休眠的测试。 但是我在上下文启动期间收到以下错误:

引起:org.h2.jdbc.JdbcSQLSyntaxErrorException: SQL 语句中的语法错误“CREATE TABLE ANIMAL (ID BIGINT NOT NULL, CREATIONDATE DATETIME, CREATOR VARCHAR(255), LASTMODIFICATION DATETIME, LASTMODIFIEDBY VARCHARERS(2555555) 255), ANAMNESIS VARCHAR(255), BREED VARCHAR(255), 评论VARCHAR(255), DATEOFBIRTH DATETIME, DECEASED BIT NOT NULL, DIET VARCHAR(255), HUSBANDRY VARCHAR(255), IDCODE VARCHAR(255)第 255 章预期的“标识符”;

我究竟做错了什么? 这是 application.properties 文件:

jdbc.driverClassName=org.h2.Driver
jdbc.url=jdbc:h2:mem:myDb;DB_CLOSE_DELAY=-1

hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.hbm2ddl.auto=create

对于 hibernate 尝试创建的所有数据库,相同的错误正在重复:

org.h2.jdbc.JdbcSQLSyntaxErrorException:SQL 语句中的语法错误“CREATE TABLE HIBERNATE_SEQUENCE (NEXT_VAL BIGINT) ENGINE=[*]MYISAM”; 预期的“标识符”

所以最后问题出在配置文件中,我有错误的行:

Properties additionalProperties() {
    Properties properties = new Properties();
    properties.setProperty("hibernate.hbm2ddl.auto", "create-drop");
    properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");

    return properties;
}

改变了它:

properties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
properties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));

一切都开始正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM