dslContext.update(table)
if(field1 != null) {
.set(field1, val1)
}
if(field2 != null) {
.set(field2, val2)
}
.where(condition1)
.and(condition2)
.execute();
虽然可以通过使用DSL API(ab)来实现这一点,但实际上最好的方法是使用以下方法之一:
updatesetstep.set(Map)
updatesetstep.set(记录)
使用记录
的示例:
Record record = dslContext.newRecord(table);
if (field1 != null)
record.set(field1, val1)
if (field2 != null) {
record.set(field2, val2)
dslContext.update(table)
.set(record)
.where(condition1)
.and(condition2)
.execute();
我找不到关于如何动态构造with子句的留档。jOOQ中常见的表表达式/CTE)。我的用例是这样的: 我需要嵌套动态创建的列,以便从这些动态创建的列中生成新数据 例如,我正在创建一个新字段,它是完全外部联接的非空结果。此字段仅在查询执行时可用,因此我需要将其存储在WITH子句中,以便在其他查询中引用它以进行其他计算 理想情况下,我可以动态地请求WITH子句类型的查询,通过将这个连接的数据集放在它自己
致: 我怎么能这么做?
任何帮助都很感激! 编辑
我正在使用JOOQ(JOOQ中的新手)在spring boot项目中使用Rest API在运行时创建数据库。在其中一种情况下,我需要创建一个具有复合主键的表,该主键可以是多个列的组合。我使用下面的代码创建约束- 我已经有
Dave使用Flyway为Alice和Bob初始化模式,因此他们都有foo table和bar函数。Dave使用jOOQ生成java api,并在运行时将开发模式映射到用户模式。戴夫以前和他的任何一个客户都没有关系,突然发现自己是鲍勃的侄子。 但是爱丽丝和鲍勃后来都回来找戴夫,让他为他们写一些自动化。因此,Dave决定创建一个机器用户Rob,他可以访问Alice和Bob的模式。他可以重用所有相同的