SP看起来像:-
CREATE PROCEDURE <spnamegoeshere>
AS
BEGIN
/* Some code goes here */
return 102323 /*Need to get this value*/
END
GO
我们正在使用
通过JPA执行存储过程(托管在SQL SERVER中)。createStoredProcedureQuery("spnamegoeshere");
我需要获取返回的值“ 102323 ”。不幸的是,使用上述命令无法获得。
稍作搜索后,获得此链接。
根据上述文档,如果使用,我可以获取该值。
CallableStatement
是否可以使用JPA进行同样的操作,无需修改SP ?
有人可以在这里分享一些意见。
答案 0 :(得分:0)
这对我有用:
@Test
public void testProc() {
SimpleJdbcCall call = new SimpleJdbcCall(jdbcTemplate);
Map<String, Object> map = call.withProcedureName("retValTestProc").withReturnValue().execute();
Assert.assertNotNull("Expected not null result but it is", Objects.nonNull(map));
Assert.assertTrue("Expected size = 1, actual=" + map.size(), map.size() == 1);
Assert.assertTrue("Expected value=102323, actual=" + map.get("RETURN_VALUE"),
Objects.equals(102323, map.get("RETURN_VALUE")));
}
retValTestProc = <spnamegoeshere>
您还可以使用SimpleJdbcCall
构造函数创建DataSource