java-Spring Data JPA调用Oracle函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-Spring Data JPA调用Oracle函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1937字,纯文字阅读大概需要3分钟。
内容图文
![java-Spring Data JPA调用Oracle函数](/upload/InfoBanner/zyjiaocheng/883/7d7dac8bf72b434dad06e252ed25c766.jpg)
我正在运行一个简单的应用程序,该应用程序使用Spring Boot Spring Data JPA进行持久化.
下面是一个示例Oracle函数,我希望在Service实现类中返回该值.
CREATE OR REPLACE PACKAGE PKG_TEST AS
FUNCTION HELLO_WORLD(TEXT VARCHAR2) RETURN VARCHAR2;
END PKG_TEST;
CREATE OR REPLACE PACKAGE BODY PKG_TEST AS
FUNCTION HELLO_WORLD(TEXT VARCHAR2) RETURN VARCHAR2 IS
BEGIN
RETURN 'HELLO WORLD ' || TEXT;
END;
END PKG_TEST;
在没有框架的情况下执行此操作很简单,但是该项目内置于Spring Boot JPA中,因此最好使用它.
我需要参考指南链接或简单的基本结构.
我在SO和Spring Data JPA参考中搜索了所有内容,发现的所有示例都是针对CRUD和存储过程的,而对于Function则没有.
我试图使用为功能修改的存储过程示例,但没有用.
解决方法:
您可以通过本机查询调用函数,并从对偶中获取结果.
public interface HelloWorldRepository extends JpaRepository<HelloWorld, Long> {
@Query(nativeQuery = true, value = "SELECT PKG_TEST.HELLO_WORLD(:text) FROM dual")
String callHelloWorld(@Param("text") String text);
}
请注意,如果您的函数正在使用DML语句,则它将无法正常工作.在这种情况下,您需要对查询使用@Modyfing批注,但是由于@Modyfing返回类型的限制,该函数本身必须返回数字.
您还可以实现CustomRepository并使用SimpleJdbcCall:
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;
import org.springframework.stereotype.Repository;
@Repository
public class HelloWorldRepositoryImpl implements HelloWorldRepositoryCustom {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public String callHelloWorld() {
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
.withCatalogName("PKG_TEST") //package name
.withFunctionName("HELLO_WORLD");
SqlParameterSource paramMap = new MapSqlParameterSource()
.addValue("param", "value"));
//First parameter is function output parameter type.
return jdbcCall.executeFunction(String.class, paramMap));
}
}
内容总结
以上是互联网集市为您收集整理的java-Spring Data JPA调用Oracle函数全部内容,希望文章能够帮你解决java-Spring Data JPA调用Oracle函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。