Error When Setting up H2 Database

别来无恙 提交于 2020-12-23 14:29:48

问题


I have been getting this error when I'm starting my application which on start up reads some data from a table:

org.h2.jdbc.JdbcSQLException: Unknown data type: "ENUM"; SQL statement:
CREATE CACHED TABLE PUBLIC.POWERPLANT(
    POWERPLANTID INT NOT NULL,
    ORGNAME VARCHAR(25) NOT NULL,
    ISACTIVE BOOL NOT NULL,
    MINPOWER INT NOT NULL,
    MAXPOWER INT NOT NULL,
    RAMPRATE INT,
    RAMPRATESECS INT,
    POWERPLANTTYPE ENUM('OnOffType','RampUpType'),
    CREATEDAT TIMESTAMP NOT NULL,
    UPDATEDAT TIMESTAMP NOT NULL
) [50004-186]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    at org.h2.message.DbException.get(DbException.java:179)
    at org.h2.message.DbException.get(DbException.java:155)
    at org.h2.command.Parser.parseColumnWithType(Parser.java:3990)
    at org.h2.command.Parser.parseColumnForTable(Parser.java:3853)
    at org.h2.command.Parser.parseCreateTable(Parser.java:5761)
    at org.h2.command.Parser.parseCreate(Parser.java:4149)
    at org.h2.command.Parser.parsePrepared(Parser.java:350)
    at org.h2.command.Parser.parse(Parser.java:305)
    at org.h2.command.Parser.parse(Parser.java:277)

Here is my connection string:

db.url = "jdbc:h2:~/path/to/db/file;MODE=MySQL;INIT=CREATE DOMAIN IF NOT EXISTS enum as VARCHAR(255);IFEXISTS=TRUE"

Any idea as to how to solve this?


回答1:


I've solved the same problem by updating h2 Maven library version to 1.4.200 instead of 1.4.187




回答2:


Here is how I solved it. The Enum type should be written like this!

powerPlantType   VARCHAR(25) check (powerPlantType in ('OnOffType', 'RampUpType')),


来源:https://stackoverflow.com/questions/48955100/error-when-setting-up-h2-database

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!