IllegalArgumentException:Type不能为null(在JAVA中)

时间:2015-08-11 09:43:46

标签: mysql hibernate spring-mvc jpa

我正面临着SO link所述的确切问题,但尚未得到解答。我已经尝试了评论部分中提出的建议,没有任何作用。

我在网上搜索了答案,发现没有运气。

我的程序看起来像这样。

DROP PROCEDURE IF EXISTS userdb.new_test;
CREATE PROCEDURE userdb.new_test (IN arg varchar(255))
BEGIN   
  select * FROM message 
END;

从此link我知道了

  

此异常表示使用不正确的输入参数调用方法。然后,您必须做的唯一事情是更正输入参数的值。为了实现这一点,请遵循堆栈跟踪中的调用堆栈,并检查哪个方法产生了无效参数。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这很可能是因为过程IN arg varchar(255)中的非默认值参数,如果没有错误,您可能在不传递任何参数的情况下调用过程。你需要像

一样打电话
call userdb.new_test 'some value'

MySQL同样在SQL Server中不支持参数默认值,因此您无法说IN arg varchar(255) = null

此外,我没有看到您在查询中使用该参数,因此最好放弃它;

DROP PROCEDURE IF EXISTS userdb.new_test;
CREATE PROCEDURE userdb.new_test 
BEGIN   
  select * FROM message 
END;