【发布时间】:2021-10-05 20:10:20
【问题描述】:
我有一个问题。
我想在 spring boot 中从我的 JPARepository 调用一个数据库函数...我的函数是下一个:
CREATE function sf_getval(seqname varchar2) return NUMBER IS ret_val number :=0;
begin
INSERT INTO schema.table(IDENT ,NAME) VALUES (12321,'Name');
return ret_val;
END sf_getval;
这并没有做任何事情,我只是想要一个在数据库中插入一些东西并返回一个数字的函数,我需要这个,不能改变,是定义。
然后从 JPA 我需要像这样消费:
@Repository
public interface myRepository extends JpaRepository<Some, SomeId> {
@Query(nativeQuery = true, value = "CALL \"pkgName\".\"sf_getval\"(:name) ")
int sf_getval(@Param("name") String name);
如果我从 dual 中选择 pkgname.sf_getval() var;没有用,因为这违反了数据库中的隔离,这不是我的选择。必须是调用命令。
我直接使用 de 存储库,因为在我的项目中我已经配置了 spring.cloud.config 并且我不需要 entityManager 或类似的东西。不是解决办法做一个jdbc调用。
谢谢,对不起我的英语。 问候
【问题讨论】:
标签: spring spring-boot spring-data-jpa function-definition