java - 如何申请到 jOOQ 中的存储函数?
问题描述
jOOQ 用户的一个常见问题是如何将 a<forcedType>
应用于代码生成器中的存储函数返回类型。该手册指定<includeExpression>
匹配合格或不合格的标识符,因此给定此 HSQLDB 函数:
CREATE FUNCTION stored_functions.f_1 (p_i int)
RETURNS int
BEGIN ATOMIC
RETURN p_i;
END
函数的参数可以强制String
使用:
<forcedType>
<userType>java.lang.String</userType>
<converter>
org.jooq.Converter.ofNullable(Integer.class, String.class, Object::toString, Integer::valueOf)
</converter>
<includeExpression>(?i:f_1\.p_i)</includeExpression>
</forcedType>
这会产生以下Parameter
规范:
/**
* The parameter <code>STORED_FUNCTIONS.F_1.P_I</code>.
*/
public static final Parameter<String> P_I = Internal.createParameter(
"P_I", org.jooq.impl.SQLDataType.INTEGER, false, false,
org.jooq.Converter.ofNullable(Integer.class, String.class, Object::toString, Integer::valueOf)
);
如何对返回值做同样的事情?
解决方案
有一个可以使用的综合参数名称。它被称为return_value
,这也是生成的Parameter
文字的名称。
以下规范将对P_I
参数 和应用相同的转换器RETURN_VALUE
:
<forcedType>
<userType>java.lang.String</userType>
<converter>
org.jooq.Converter.ofNullable(Integer.class, String.class, Object::toString, Integer::valueOf)
</converter>
<includeExpression>(?i:f_1\.p_i|return_value)</includeExpression>
</forcedType>
这会产生以下Parameter
规范:
/**
* The parameter <code>STORED_FUNCTIONS.F_1.RETURN_VALUE</code>.
*/
public static final Parameter<String> RETURN_VALUE = Internal.createParameter(
"RETURN_VALUE", org.jooq.impl.SQLDataType.INTEGER, false, false,
org.jooq.Converter.ofNullable(Integer.class, String.class, Object::toString, Integer::valueOf)
);
/**
* The parameter <code>STORED_FUNCTIONS.F_1.P_I</code>.
*/
public static final Parameter<String> P_I = Internal.createParameter(
"P_I", org.jooq.impl.SQLDataType.INTEGER, false, false,
org.jooq.Converter.ofNullable(Integer.class, String.class, Object::toString, Integer::valueOf)
);
推荐阅读
- google-sheets - 基于范围的谷歌电子表格条件多行格式
- php - woocommerce 如果特定产品在购物车中,则禁用否则需要的特定结帐字段
- javascript - 在javascript中使用map或reduce将二维数组转换为对象
- gatsby - 如何更改我的 Gatsby 博客文章页面的生成路径?
- .net-core - 使用 Nancy 和 .Net Core 时如何在外部程序集中注册 FluentValidation 验证器?
- jira - 无法创建 Confluence 页面,知道为什么吗?
- c# - 检查文件是否存在不起作用
- jquery - 带有有效数据的数据表警告
- sql - 如何根据列的值获取sql server中的行
- python - 如何从大文本文件中的随机位置进行 python 正则表达式搜索