当前位置: 首页 > 知识库问答 >
问题:

当两个函数具有相同名称时,jOOQ生成器错误(变量已定义)

林英锐
2023-03-14

编辑

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

原帖

我一直在使用Jooq3.8.1,它工作得很好。今天,我尝试升级到3.10.2,生成器不再工作了,它在表和记录类中为一些函数生成重复的变量/函数:

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]
/**
 * 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]

}
<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>

共有1个答案

屈翰飞
2023-03-14

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

 类似资料:
  • 问题内容: 我的问题是为什么我不能再次调用该函数?或者,如何做到这一点? 假设我有这个功能: 我称之为: 我得到4。 但是,假设我声明了一个与该函数同名的变量(错误): 现在,如果我尝试这样做: 要么: 我将收到此错误:“ TypeError:’int’对象不可调用” 无法将变量“ a”分配给函数? 问题答案: 完成此操作后: 不再是一个 函数 ,而只是一个 整数 (您已将其重新分配!)。因此,很

  • 我正在运行以下JOOQ查询: table和joinTable都有id作为主键名称,但最终获取实体类包含joinTable的id和table的其余列。如果我重新排序表,结果相似,我有表的ID和joinTable的其余列。

  • 问题内容: 假设我有一个Helper类,如下所示: 并且是将被设置一次,在构造函数的变量。 不是,因此我可以使用来区分变量和参数。 另一方面,是。在涉及静态变量时,是否有任何方法可以将其与参数区分开? 问题答案: 尽管不建议通过构造函数设置静态变量的值,但可以使用。

  • 我有以下代码: 这段代码编译得很好,但如果我将定义移到类之外,它就不会: gcc错误消息: 叮当的错误消息: MSVC 2019错误消息: 如果它在测试中将更改为,或者如果我将重命名为其他名称,它也可以很好地编译。 你能解释一下为什么第一个版本编译而第二个版本没有编译吗?你能告诉我这个错误的标准措辞吗? 编辑:我发布了来自不同编译器的错误消息。当@cigien pointed clang trun

  • 问题内容: 我正在尝试使用RSA 7.5和Websphere 7服务器开发IBM JAX_WS Web服务。因为我是一个初学者,所以我遵循Java类优先方法,即首先创建Java类,然后生成WSDL文件。 当我尝试创建wsdl文件时,出现异常: java.security.PrivilegedActionException:com.sun.xml.internal.bind.v2.runtime.I

  • 问题内容: 我正在用C#编写.NET Framework 3.5。 我正在尝试将某些Json解析为JObject。 Json如下: 当我尝试将此Json解析为JObject时,JObject仅了解LargeBox。SmallBox和MedBox的信息丢失。显然,这是因为它将“ TBox”解释为一个属性,并且该属性已被覆盖。 我从Delphi编码的服务中收到此Json。我正在尝试为该服务创建C#代理