java方言不支持ref\u游标参数

rwqw0loc  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(298)

在SpringBoot应用程序中,我使用storedprocedurequery对oracle数据库执行请求

StoredProcedureQuery query = entityManager.createNamedStoredProcedureQuery("checkTest");

        query.registerStoredProcedureParameter(2, String.class, ParameterMode.IN);
        query.registerStoredProcedureParameter(3, String.class, ParameterMode.IN);
        query.registerStoredProcedureParameter(4, Integer.class, ParameterMode.IN);
        query.registerStoredProcedureParameter(1, Void.class, ParameterMode.REF_CURSOR);

        query.setParameter(2, dto.getIdentity());
        query.setParameter(3, dto.getSourceIp());
        query.setParameter(4, dto.getSource()); query.execute();


这是我的plsql响应
但在我的代码中我得到了错误 QueryException: Dialect [org.hibernate.dialect.MySQL5Dialect] not known to support REF_CURSOR parameters

lnvxswe2

lnvxswe21#

您需要根据正在使用的数据库指定适当的方言。
对于hibernate 5.4,请尝试:
org.hibernate.dialect.oracle10g for oracle 10 g或,
Oracle12c的org.hibernate.dialect.oracle12cdialect。
https://docs.jboss.org/hibernate/orm/5.4/javadocs/
另一方面,如果在mysql上使用这个存储过程,它将无法工作,因为mysql驱动程序不支持refcursor参数。

相关问题