从对象jooq 3.9.0和3.9.1生成DDL

时间:2017-03-13 00:02:42

标签: java jooq

我目前正在使用jooq,对于我的单元测试,我使用内存H2 DB,我使用jooq生成的元数据创建表,如 https://www.jooq.org/doc/3.9/manual/sql-building/ddl-statements/generating-ddl/

使用3.8.4它工作正常但升级到3.9.0(或3.9.1)时出现错误:

Queries queries = dslContext.ddl(DefaultSchema.DEFAULT_SCHEMA);
    for (Query query : queries.queries()) {
        query.execute();
    }

错误:

java.lang.ArrayIndexOutOfBoundsException:-1

at org.jooq.impl.SchemaImpl.<init>(SchemaImpl.java:78)
at org.jooq.impl.DSL.schema(DSL.java:7199)
at org.jooq.impl.DefaultDSLContext.createSchema(DefaultDSLContext.java:2605)
at org.jooq.impl.DefaultDSLContext.createSchema(DefaultDSLContext.java:2600)
at org.jooq.impl.DDL.queries(DDL.java:112)
at org.jooq.impl.DefaultDSLContext.ddl(DefaultDSLContext.java:2487)
at org.jooq.impl.DefaultDSLContext.ddl(DefaultDSLContext.java:2482)

1 个答案:

答案 0 :(得分:1)

感谢报道。这是jOOQ 3.9.0和3.9.1中的错误。我为此创建了https://github.com/jOOQ/jOOQ/issues/5979

解决方法是在此处排除架构生成:

Queries queries = dslContext.ddl(DefaultSchema.DEFAULT_SCHEMA, DDLFlag.TABLE, ...);