首页 > 解决方案 > spring-data-jpa 没有从 oracle.jdbc.driver.forwardonlyreswultset 转换

问题描述

我正在连接到一个 oracle 数据库。我刚刚解决了依赖问题(在下面的 url 中有需要的代码,如存储库、实体等):

spring-data-jpa 1.11.16 带游标的存储过程

现在,当我调用存储库时,我遇到了强制转换问题。存储库向我发回了 ForwardOnlyResultSet 列表,但我无法映射我的结​​果。那是错误:

Cannot cast 'oracle.jdbc.driver.ForwardOnlyResultSet' to 'procedure.entity.PocRegions'

我的 oracle pl/sql 程序是:

PROCEDURE PRO_RETURN_REGION(
            id_region IN POC_REGIONS.REGION_ID%TYPE,
            o_cursor OUT SYS_REFCURSOR) is
            BEGIN
            --Opening the cursor to return matched rows
                open o_cursor for
                select *
                from POC_REGIONS
                where POC_REGIONS.REGION_ID = id_region;
    END PRO_RETURN_REGION;

然后我尝试使用 jpa 调用和 spring-data-jpa 调用来实现调用:

StoredProcedureQuery query = entityManager.createStoredProcedureQuery( "POC_PKG_GEO.PRO_RETURN_REGION");
        query.registerStoredProcedureParameter("id_region", BigDecimal.class, ParameterMode.IN);
        query.registerStoredProcedureParameter("o_cursor", void.class, ParameterMode.REF_CURSOR);

        query.setParameter("id_region", id);

        query.execute();

        //Contains a forwardonlyreswultset (jpa call)
        Object res = query.getOutputParameterValue("o_cursor");

        //Contains an array of 2 Object not mapped (jpa call)
        List<PocRegions> resultList = query.getResultList();

        //Contains a forwardonlyreswultset (spring-data-jpa call)
        List<PocRegions> region = geoRegionRepo.getRegion(id);

我应该如何将检索到的值转换/映射到我的实体?

谢谢

标签: javaoraclehibernatespring-data-jpa

解决方案


推荐阅读