修改
我注意到我有两个具有相同名称的函数,但是不同的参数/列输出,这在SQL中是合法的(至少是PostgreSQL)。
jOOQ设法为这种情况生成类(至少达到3.8.1),但不再能够这样做了。我尝试删除这两个函数中的一个,它工作正常。我重新创建它,它又失败了。
是否有一个参数或某些东西可以恢复以前的行为?
谢谢
原始帖子
我一直在使用jOOQ 3.8.1,它运行良好。今天,我尝试升级到3.10.2,并且生成器不再工作,它在Table和Record类中为某些函数生成重复的变量/函数:
My_Function(table)class
/**
* 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>