小编Nat*_*sen的帖子

如何使用 Spring Data JPA 和 Hibernate 执行 H2 存储过程?

我想使用 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)

stored-procedures hibernate jpa h2 spring-data-jpa

4
推荐指数
1
解决办法
6320
查看次数

标签 统计

h2 ×1

hibernate ×1

jpa ×1

spring-data-jpa ×1

stored-procedures ×1