Java-Hibernate调用MySql存储过程-警告消息

Java-Hibernate调用MySql存储过程-警告消息,java,mysql,spring,hibernate,stored-procedures,Java,Mysql,Spring,Hibernate,Stored Procedures,我有一个Java项目,使用hibernate调用存储过程 下面是我正在使用的示例代码 public String findCloudName(Long cloudId) { LOG.info("Entered findCloudName Method - cloudId:{}", cloudId); String cloudName = null; ProcedureCall procedureCall = currentSession(

我有一个Java项目,使用hibernate调用存储过程

下面是我正在使用的示例代码

  public String findCloudName(Long cloudId) {
        LOG.info("Entered findCloudName Method - cloudId:{}", cloudId);

        String cloudName  = null;
        ProcedureCall  procedureCall = currentSession().createStoredProcedureCall("p_getCloudDetails");
        procedureCall.registerParameter( "cloudId", Long.class, ParameterMode.IN ).bindValue( cloudId );
        procedureCall.registerParameter( "cloudName", String.class, ParameterMode.OUT );

        ProcedureOutputs  outputs = procedureCall.getOutputs();

        cloudName = (String) outputs.getOutputParameterValue( "cloudName" );

        LOG.info("Exiting findCloudName Method - cloudName:{}", cloudName);
        return cloudName; 
    }
这样做效果很好,达到了预期的效果。 但是,它会在我的日志中留下以下消息

[WARN] [320]org.hibernate.procedure.internal.ProcedureCallImpl[prepareForNamedParameters]  - HHH000456: Named parameters are used for a callable statement, but database metadata indicates named parameters are not supported.
我在浏览网站和hibernate的源代码,试图找出如何消除这个警告

非常感谢您的帮助

干杯
Damien

这与以下方面的纠正有关:

在某些情况下,数据库元数据是不正确的(即,当实际支持某个内容时,表示该内容不受支持)。在这种情况下,最好只记录一条警告。如果事实证明命名参数确实不受支持,那么稍后当命名参数绑定到SQL语句时,将抛出SQLException

因此,警告警告您不要调用查询命名参数元数据的方法