无法执行JPA的存储过程 [英] Can not execute stored procedure JPA
问题描述
当尝试使用JPA在Oracle中执行存储过程时,出现以下异常:
While attempting to execute a stored procedure in Oracle using JPA, I'm getting the following exception:
由以下原因引起:org.switchyard.HandlerException:
java.lang.NoSuchMethodError:
javax.persistence.EntityManager.createStoredProcedureQuery(Ljava/lang/String;)
Ljavax/persistence/StoredProcedureQuery;
Caused by: org.switchyard.HandlerException:
java.lang.NoSuchMethodError:
javax.persistence.EntityManager.createStoredProcedureQuery(Ljava/lang/String;)
Ljavax/persistence/StoredProcedureQuery;
有一个代码段:
query = enmanager.createStoredProcedureQuery("BEGIN YLABPACK.ejemplo(?,?);END;")
.registerStoredProcedureParameter(1, String.class, ParameterMode.IN)
.registerStoredProcedureParameter(2, String.class, ParameterMode.IN)
.setParameter(1, datosIdController.getSerie())
.setParameter(2, respuesta).execute();
推荐答案
从Java Persistence 2.1开始,方法 EntityManager#createStoredProcedureQuery(Ljava/lang/String;)可用.检查您拥有的JPA版本.请注意,这可能是依赖性冲突(即由于Maven传递依赖性).如果您可以分享有关项目设置的更多信息,将为您提供帮助.
The method EntityManager#createStoredProcedureQuery(Ljava/lang/String;) is available since Java Persistence 2.1. Check the JPA version you have. Mind that it can be a dependency conflict (i.e. due to maven transitive dependency). If you can share more about your project setup it will be easier to help you.
这篇关于无法执行JPA的存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!