无法将值绑定到参数

时间:2011-03-24 20:06:44

标签: java sql oracle hql

我正在使用HQL在Java中运行查询并创建如下所示的参数: query.setParameter("month", month);

month变量是介于1和12之间的BigDecimal。但是,month变量作为Object传递给运行此查询的函数。因此,当它被设置为参数时,它被视为一个对象。

当我运行查询时,我收到此错误:

15:46:48,878 INFO  [IntegerType] could not bind value '4' to parameter: 1; java.math.BigDecimal
15:46:48,878 ERROR [STDERR] java.lang.ClassCastException: java.math.BigDecimal
15:46:48,878 ERROR [STDERR]     at org.hibernate.type.IntegerType.set(IntegerType.java:41)
15:46:48,878 ERROR [STDERR]     at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
15:46:48,879 ERROR [STDERR]     at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:116)
15:46:48,879 ERROR [STDERR]     at org.hibernate.param.NamedParameterSpecification.bind(NamedParameterSpecification.java:38)

'4'是我月份变量中存储的值。所以这个参数显然有问题。什么可能导致这个?

1 个答案:

答案 0 :(得分:0)

我修好了。尝试将BigDecimal添加到查询中的常量数字只是一个问题。