【问题标题】:Error When Setting up H2 Database设置 H2 数据库时出错
【发布时间】:2018-02-23 19:39:01
【问题描述】:

我在启动应用程序时遇到此错误,该应用程序在启动时会从表中读取一些数据:

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)

这是我的连接字符串:

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

你知道如何解决这个问题吗?

【问题讨论】:

    标签: java jdbc h2


    【解决方案1】:

    我通过将 h2 Maven 库版本更新为 1.4.200 而不是 1.4 解决了同样的问题。 187

    【讨论】:

      【解决方案2】:

      这是我解决它的方法。 Enum类型应该这样写!

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

      【讨论】:

        猜你喜欢
        • 2021-06-05
        • 2012-10-21
        • 1970-01-01
        • 1970-01-01
        • 2017-12-05
        • 1970-01-01
        • 2019-10-06
        • 2021-01-06
        • 1970-01-01
        相关资源
        最近更新 更多