Java MYSQL Hibernate 5.2 CreateStoredProcess
下面是我调用mysql存储过程的代码Java MYSQL Hibernate 5.2 CreateStoredProcess,java,mysql,hibernate,stored-procedures,Java,Mysql,Hibernate,Stored Procedures,下面是我调用mysql存储过程的代码 StoredProcedureQuery query = getCurrentSession().createStoredProcedureQuery("updateinselgibilitycount") .registerStoredProcedureParameter("ppatientinsid", Long.class, ParameterMode.IN) .registerStoredProcedu
StoredProcedureQuery query = getCurrentSession().createStoredProcedureQuery("updateinselgibilitycount")
.registerStoredProcedureParameter("ppatientinsid", Long.class, ParameterMode.IN)
.registerStoredProcedureParameter("pencounterID", Long.class, ParameterMode.IN)
.setParameter("ppatientinsid", ppatientinsid).setParameter("pencounterID", encounterID);
query.execute();
我得到了以下错误
10:04:42.167 [http-nio-8080-exec-3] WARN o.h.p.internal.ProcedureCallImpl - HHH000456: Named parameters are used for a callable statement, but database metadata indicates named parameters are not supported.
Hibernate:
{call updateinselgibilitycount(?,?)}
10:04:42.329 [http-nio-8080-exec-3] ERROR c.p.w.utilities.ExceptionHandler - User ID : 1
Error : org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:413)
at org.springframework.orm.hibernate5.HibernateExceptionTranslator.translateExceptionIfPossible(HibernateExceptionTranslator.java:54)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59)
您需要一个事务来执行存储过程。用
@Transactional
注释您的方法。它与以下更正相关:
在某些情况下,数据库元数据是不正确的(即,当实际支持某个内容时,表示该内容不受支持)。在这种情况下,最好只记录一条警告。如果事实证明命名参数确实不受支持,那么稍后当命名参数绑定到SQL语句时,将抛出SQLException
因此,警告警告您不要调用查询命名参数元数据的方法
只需在hibernate日志中简单地禁用警告,就不会在控制台上发出警告。
在应用程序中设置以下属性。属性
logging.level.org.hibernate: ERROR