【问题标题】:jOOQ generator error (variable already defined) when two functions have same name当两个函数具有相同名称时,jOOQ 生成器错误(变量已定义)
【发布时间】:2018-05-21 18:47:41
【问题描述】:

编辑

我注意到我有两个函数名称相同,但参数/列输出不同,这在 SQL 中是合法的(至少是 PostgreSQL)。

jOOQ 设法为这种情况生成类(至少到 3.8.1),但不再能够这样做。我尝试删除这两个功能之一,它工作正常。我重新创建了它,它又失败了。

是否有参数或其他东西可以恢复以前的行为?

谢谢

原帖

我一直在使用 jOOQ 3.8.1,它运行良好。今天,我尝试升级到 3.10.2,并且生成器不再工作,它为某些函数在 Table 和 Record 类中生成重复的变量/函数:

My_Function(表)类

/**
 * The column <code>public.my_function.pde_id</code>.
 */
public final TableField<My_FunctionRecord, Long> PDE_ID = createField("pde_id", org.jooq.impl.SQLDataType.BIGINT, this, "");

/**
 * The column <code>public.my_function.pde_id</code>.
 */
public final TableField<My_FunctionRecord, Long> PDE_ID = createField("pde_id", org.jooq.impl.SQLDataType.BIGINT, this, "");

[...same for all fields]

My_FunctionRecord 类

/**
 * Setter for <code>public.my_function.pde_id</code>.
 */
public void setPdeId(Long value) {
    set(0, value);
}

/**
 * Getter for <code>public.my_function.pde_id</code>.
 */
public Long getPdeId() {
    return (Long) get(0);
}

/**
 * Setter for <code>public.my_function.pde_id</code>.
 */
public void setPdeId(Long value) {
    set(1, value);
}

/**
 * Getter for <code>public.my_function.pde_id</code>.
 */
public Long getPdeId() {
    return (Long) get(1);
}

[...same for all fields]

public My_FunctionRecord(Long pdeId, Long pdeId, [...same for all fields]) {
    super(My_Function.MY_FUNCTION);

    set(0, pdeId);
    set(1, pdeId);
    [...same for all fields]

}

我使用 3.9.1 进行了测试,得到了相同的结果。这是一个已知问题吗?

还有我的jooq生成器配置:

<generator>
  <database>
    <name>${db.jooq}</name>
    <includes>.*</includes>
    <excludes></excludes>
    <inputSchema>public</inputSchema>
  </database>
  <generate>
    <records>true</records>
    <deprecated>false</deprecated>
  </generate>
  <target>
    <packageName>com.generated.jooq</packageName>
    <directory>${project.basedir}/src/main/java</directory>
  </target>
</generator>

【问题讨论】:

标签: java sql code-generation jooq


【解决方案1】:

这是一个已知问题,截至 jOOQ 3.10 尚未修复:https://github.com/jOOQ/jOOQ/issues/4055

【讨论】:

    猜你喜欢
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    相关资源
    最近更新 更多