gpt4 book ai didi

java - 由于多个 Java 错误,无法编译自动生成的 JOOQ 代码

转载 作者:搜寻专家 更新时间:2023-11-01 02:36:06 27 4
gpt4 key购买 nike

我使用了 java --add-modules java.xml.bind -classpath jooq-3.11.3.jar;jooq-meta-3.11.3.jar;jooq-codegen-3.11.3.jar;postgresql -42.2.4.jar;. org.jooq.codegen.GenerationTool jooq.xml 为我的 PostgreSQL 10 USER 表自动生成 JOOQ 代码。

pgadmin4_2018-07-24_08-08-49

codegen 工具成功完成,但我的程序无法编译,因为自动生成的代码中存在多个 Java 语法错误。

一些例子:

PgClass.java

/**
* @deprecated Unknown data type. Please define an explicit {@link org.jooq.Binding} to specify how this type should be handled. Deprecation can be turned off using <deprecationOnUnknownTypes/> in your code generator configuration.
*/
@java.lang.Deprecated
public final TableField<PgClassRecord, Object> RELPARTBOUND = createField("relpartbound", , this, "");

idea64_2018-07-24_08-12-48

编译器告诉我 java:表达式的非法开始

PgIndex.java:

/**
* The column <code>pg_catalog.pg_index.indoption</code>.
*/
public final TableField<PgIndexRecord, Object[]> INDOPTION = createField("indoption", .getArrayDataType(), this, "");

idea64_2018-07-24_08-15-31

编译器告诉我 java:从第 8 版开始,'this' 只允许作为接收者类型的参数名称,它必须是第一个参数

编辑:

jooq.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.11.0.xsd">
<jdbc>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://localhost:5432/timecoder-api-dev</url>
<user>postgres</user>
<password></password>
</jdbc>

<generator>
<database>
<name>org.jooq.meta.postgres.PostgresDatabase</name>
<includes>.*</includes>
</database>
<target>
<packageName>persistence.database.generated</packageName>
<directory>K:\Data\Dev\Git\timecoder-api\src</directory>
</target>
</generator>
</configuration>
  • jOOQ:3.11.3
  • Java:1.8.0_181
  • 数据库(包括供应商):PostgreSQL 10
  • 操作系统:Windows 10

我还在 GitHub 上创建了一个问题:https://github.com/jOOQ/jOOQ/issues/7684

最佳答案

我的数据库表在 Postgres 模式“public”中。我忘了添加 <inputSchema>public</inputSchema>到我的 jooq.xml。现在它工作正常:)

jooq.xml :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.11.0.xsd">
<jdbc>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://localhost:5432/timecoder-api-dev</url>
<user>postgres</user>
<password></password>
</jdbc>

<generator>
<database>
<name>org.jooq.meta.postgres.PostgresDatabase</name>
<inputSchema>public</inputSchema>
<includes>.*</includes>
</database>
<target>
<packageName>persistence.database.generated</packageName>
<directory>K:\Data\Dev\Git\timecoder-api\src</directory>
</target>
</generator>
</configuration>

关于java - 由于多个 Java 错误,无法编译自动生成的 JOOQ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51494099/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com