Spring 如何定义在grovvy中指定SqlType的SqlParameter映射?

Spring 如何定义在grovvy中指定SqlType的SqlParameter映射?,spring,groovy,spring-jdbc,Spring,Groovy,Spring Jdbc,我想使用构造函数MapSqlParameterSource创建一个参数列表,该构造函数将映射作为输入 唯一的问题是我不知道如何编写一个映射,它不仅告诉MapSqlParameterSource ID和值,还告诉SqlType id = 1 desc = "Description" insertSql = "INSERT INTO table(id,desc) VALUES (:idCode,:descCode)" SqlParameterSource mapParam = new MapSq

我想使用构造函数MapSqlParameterSource创建一个参数列表,该构造函数将映射作为输入

唯一的问题是我不知道如何编写一个映射,它不仅告诉MapSqlParameterSource ID和值,还告诉SqlType

id = 1
desc = "Description"

insertSql = "INSERT INTO table(id,desc) VALUES (:idCode,:descCode)"

SqlParameterSource mapParam = new MapSqlParameterSource([idCode: id, descCode: desc])
通过这种方式,我可以创建SqlParameterSource,但我不能直接指定SqlTypes,我在其中一个测试中遇到了一个异常:

oracle.jdbc.driver.OracleSql.computeBasicInfo(OracleSql.java:950)
oracle.jdbc.driver.OracleSql.getSqlKind(OracleSql.java:623)
oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:1212)
oracle.jdbc.driver.T4CPreparedStatement.<init>(T4CPreparedStatement.java:28)
oracle.jdbc.driver.T4CDriverExtension.allocatePreparedStatement(T4CDriverExtension.java:68)
oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:3140)
oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:3042)
oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:6022)

尝试使用

实际异常是什么?这是一个局部的堆栈跟踪
mapParam = new MapSqlParameterSource()

mapParam.addValue("idCode", stock, Types.NUMBER)
mapParam.addValue("descCode", stockType, Types.VARCHAR)