在Java中创建存储过程时,没有为参数1异常指定值

在Java中创建存储过程时,没有为参数1异常指定值,java,mysql,hibernate,stored-procedures,Java,Mysql,Hibernate,Stored Procedures,我正在从Java动态创建一个存储过程,如下所示: String dnyCursorProcedure ="CREATE PROCEDURE dyn_cursor" + mNumber + " (IN `query` TEXT, IN `timeout` TINYINT UNSIGNED, OUT x TEXT)" //more procedure queryTest = mEntityManager.createNativeQuery(dnyCursorProcedure); query

我正在从Java动态创建一个存储过程,如下所示:

String dnyCursorProcedure ="CREATE PROCEDURE dyn_cursor" +
    mNumber + " (IN `query` TEXT, IN `timeout` TINYINT UNSIGNED, OUT x TEXT)"
//more procedure
queryTest = mEntityManager.createNativeQuery(dnyCursorProcedure);
queryTest.executeUpdate();
当执行这段代码时,即使这是create procedure语句,它也会给出为参数1异常指定的No值

我错过了什么

编辑1: 以下是整个过程

String dnyCursorProcedure ="CREATE PROCEDURE dyn_cursor"
                        +mNumber+" (IN `query` TEXT, IN `timeout` TINYINT UNSIGNED, OUT x TEXT)"
                                        +" BEGIN"
                                        +"  DECLARE val TEXT;"
                                        +"  DECLARE eof BOOL;"
                                        +"  DECLARE cur_dyn"+mNumber+" CURSOR FOR"
                                        +"      SELECT * FROM dyn_view"+mNumber+" ;"
                                        +"  DECLARE CONTINUE HANDLER"
                                        +"      FOR NOT FOUND"
                                        +"      SET eof = TRUE;"
                                        +"  CALL dyn_lock"+mNumber+" (query, 'dyn_view"+mNumber+"', timeout);"
                                        +"  OPEN cur_dyn"+mNumber+" ;"
                                        +"  DO RELEASE_LOCK('dyn_view"+mNumber+"');"
                                        +"  lp_dyn:LOOP"
                                        +"      IF eof = TRUE THEN"
                                        +"          LEAVE lp_dyn;"
                                        +"      END IF;"
                                        +"      FETCH cur_dyn"+mNumber+" INTO val;"
                                        +"  END LOOP;"
                                        +"  CLOSE cur_dyn"+mNumber+" ;"
                                        +"  SET x = val;"
                                        +" END;";

在错误堆栈中查找导致异常的行号。检查它是否和你想的一样。否则,也发布代码的其他部分。@RavinderReddy我检查了堆栈跟踪,异常出现在queryTest.executeUpdate,正如预期的那样,我已经发布了整个过程。好的,我知道hibernate在查找其值时将:LOOP视为一个参数,现在我正在寻找一个转义角色。即使经过一个小时的努力寻找一个转义角色,我也没有解决方案,这是可能的吗?我参考了,但我仍然得到相同的错误。