我想使用 Spring Data JPA 和 Hibernate 来执行一个简单的 H2 数据库存储过程。
存储过程类:
public class H2StoredProcedures {
public static String stringIn(final String inValue) {
log.info("stringIn: '{}'", inValue);
return inValue + "_result";
}
}
Run Code Online (Sandbox Code Playgroud)
存储过程别名:
DROP ALIAS IF EXISTS STRING_IN;
CREATE ALIAS STRING_IN FOR "H2StoredProcedures.stringIn";
Run Code Online (Sandbox Code Playgroud)
在 H2 控制台中执行按预期工作:
CALL STRING_IN('fooIn');
PUBLIC.STRING_IN('fooIn')
fooIn_result
(1 row, 1 ms)
Run Code Online (Sandbox Code Playgroud)
Spring Data JPA 存储库类:
@Procedure("STRING_IN")
String stringIn(@Param("inValue") final String inValue);
Run Code Online (Sandbox Code Playgroud)
存储库测试:
@Test
public void testStringIn() throws Exception {
assertEquals("fooIn_result", this.testRepository.stringIn("fooIn"));
}
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
2015-08-31 14:52:38,117 WARN [main]: HHH000456: Named …Run Code Online (Sandbox Code Playgroud)