【问题标题】:Call a function with default value in an SQL statement在 SQL 语句中调用具有默认值的函数
【发布时间】:2021-02-03 02:46:33
【问题描述】:

我有这个 SQL 语句:

select pa_bez.divlovs(lovart, lovid) bez, lovid, lovart from divlovs where lovart = ?

pa_bez.divlovs 有一个默认值的第三个参数。

jOOQ 生成了这个方法:

public static Field<String> divlovs(String pLovart, String pLovid, String pSprache)

如果我在 SELECT 语句中使用它,我将不得不传递 null 并且不会使用默认值。

如何将此查询转换为仅使用两个参数调用 pa_bez.divlovs 的 jOOQ?

【问题讨论】:

标签: java jooq


【解决方案1】:

如果要应用默认值,则不能使用 static 便捷方法,必须使用底层 Routine 对象,例如

Divlovs divlovs = new Divlovs();
divlovs.setPLovart(...);
divlovs.setPLovid(...);

List<String> result =
ctx.select(divlovs.asField())
   .from(DIVLOVS)
   .where(DIVLOVS.LOVART.eq(...))
   .fetch();

【讨论】:

  • 不!我变得又老又懒。谢谢
  • @SimonMartinelli:这是一个很好的提醒,最终在手册中给存储过程更多的爱! (例如github.com/jOOQ/jOOQ/issues/5678)。我的意思是,应该有一个专门用于默认参数值的部分。此外,通常在编写更多手动部分时,通过“dogfooding”发现新的改进 API。所以,不用担心。我认为您的问题暗示文档不足!
猜你喜欢
  • 1970-01-01
  • 2019-10-10
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 2018-02-26
  • 2020-11-25
相关资源
最近更新 更多