在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
1条答案
按热度按时间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参数。