Java 如何使用JPA或JDBC使用refu游标调用PL/SQL函数

Java 如何使用JPA或JDBC使用refu游标调用PL/SQL函数,java,spring,oracle,jpa,jdbc,Java,Spring,Oracle,Jpa,Jdbc,我在PL/SQL中创建了一个函数,返回模式中所有表的名称 CREATE OR REPLACE FUNCTION dbINFO return sys_refcursor AS table_info sys_refcursor; begin open table_info for select table_name from all_tables where owner = 'HOMEUSER'; return table_info; end; 我想用J

我在PL/SQL中创建了一个函数,返回模式中所有表的名称

CREATE OR REPLACE FUNCTION dbINFO
return sys_refcursor AS 
table_info sys_refcursor;
begin
    open table_info
        for select table_name from all_tables where owner = 'HOMEUSER';

        return table_info;
end;
我想用JDBC或者JPA来调用它


我怎么做?我尝试了几乎所有的方法,但没有结果。

在任何实体类上创建命名本机查询

@NamedNativeQuery(name="getAllTablesOwnedByHomeUser",
callable=true , query = "{? = call dbINFO()}",
resultClass = Pojo.class) //Pojo is class whch u r using 2 map resltset.


 //Field name in Pojo class and Table columns name should match which are returned 
   // by the cursor
现在使用EntityManager调用命名查询,如下所示

  EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();
TypedQuery<Pojo.class> q = em.createNativeQuery("getAllTablesOwnedByHomeUser",Pojo.class);
List<Pojo> tables = q.getResultList();
em.getTransaction().commit();
em.close();

@不幸的是,它没有回答我的问题。我有一个函数而不是程序。我想使用ref_游标返回信息,并在程序启动时打印。您了解了吗