joesan
joesan

Reputation: 15345

Error When Setting up H2 Database

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?

Upvotes: 0

Views: 2601

Answers (2)

Taras Melnyk
Taras Melnyk

Reputation: 3255

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

Upvotes: 2

joesan
joesan

Reputation: 15345

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

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

Upvotes: 1

Related Questions