Spring 集成 jdbc 存储过程自定义行映射器
Spring Integration jdbc stored procedure custom rowmapper
我是 Spring 集成的新手,正在使用 Spring 4.2.4。
我正在尝试使用 jdbc:stored-proc-outbound-gateway 调用存储过程。我已经在使用 spring jdbc。
存储过程正在 returning 游标并且正在使用如下所示的 customRowMapper
new SqlOutParameter(A_RC, OracleTypes.CURSOR, null, new MyCustomDataExtractor())
MyCustomDataExtractor 实现了 SqlReturnType 并且它 return 是自定义对象。
现在的问题是我如何在 SI jdbc 存储我的代码 proc.piece 中实现这一点..
...
<int-jdbc:sql-parameter-definition name="A_RC" type="#{T(oracle.jdbc.OracleTypes).CURSOR}" direction="OUT"/>
...
<int-jdbc:returning-resultset name="A_RC" row-mapper="a.b.c.MyCustomDataExtractor"/>
...
Spring 希望这是一个行映射器。我应该在这里使用任何变压器吗?请指教。
注意:我必须 return 多个结果集。
我在 sql 参数定义中添加了 return 类型并删除了 returning-resultset。
<int-jdbc:sql-parameter-definition name="A_RC" type="#{T(oracle.jdbc.OracleTypes).CURSOR}" direction="OUT" return-type="ed"/>
这里的 "ed" 只是 a.b.c.MyCustomDataExtractor.
的 bean 引用
<bean id="ed" class="a.b.c.MyCustomDataExtractor"/>
实际上,对于 CURSOR
类型,您可以使用 returning-resultset
和 RowMapper
实现。
有了它,您无需担心任何 SqlReturnType
,只需将行直接映射到您的域对象即可。
我什至确定你可以将 MyCustomDataExtractor
修改为 RowMapper
合同。
注意:使用 returning-resultset
定义您不需要
为相同的 OUT
参数指定 sql-parameter-definition
。该组件将它们正确识别为 OutParameter
.
而且,是的,您可以为 CURSOR
个参数设置多个 returning-resultset
。
我是 Spring 集成的新手,正在使用 Spring 4.2.4。 我正在尝试使用 jdbc:stored-proc-outbound-gateway 调用存储过程。我已经在使用 spring jdbc。
存储过程正在 returning 游标并且正在使用如下所示的 customRowMapper
new SqlOutParameter(A_RC, OracleTypes.CURSOR, null, new MyCustomDataExtractor())
MyCustomDataExtractor 实现了 SqlReturnType 并且它 return 是自定义对象。
现在的问题是我如何在 SI jdbc 存储我的代码 proc.piece 中实现这一点..
...
<int-jdbc:sql-parameter-definition name="A_RC" type="#{T(oracle.jdbc.OracleTypes).CURSOR}" direction="OUT"/>
...
<int-jdbc:returning-resultset name="A_RC" row-mapper="a.b.c.MyCustomDataExtractor"/>
...
Spring 希望这是一个行映射器。我应该在这里使用任何变压器吗?请指教。 注意:我必须 return 多个结果集。
我在 sql 参数定义中添加了 return 类型并删除了 returning-resultset。
<int-jdbc:sql-parameter-definition name="A_RC" type="#{T(oracle.jdbc.OracleTypes).CURSOR}" direction="OUT" return-type="ed"/>
这里的 "ed" 只是 a.b.c.MyCustomDataExtractor.
的 bean 引用<bean id="ed" class="a.b.c.MyCustomDataExtractor"/>
实际上,对于 CURSOR
类型,您可以使用 returning-resultset
和 RowMapper
实现。
有了它,您无需担心任何 SqlReturnType
,只需将行直接映射到您的域对象即可。
我什至确定你可以将 MyCustomDataExtractor
修改为 RowMapper
合同。
注意:使用 returning-resultset
定义您不需要
为相同的 OUT
参数指定 sql-parameter-definition
。该组件将它们正确识别为 OutParameter
.
而且,是的,您可以为 CURSOR
个参数设置多个 returning-resultset
。