我班上有以下属性:
@NotNull
@Digits(fraction = 0, integer = 2)
private Byte value;
以下代码:
List<Integer> values = new ArrayList<Integer>();
values.add(1);
values.add(2);
Query query = getSession().createQuery("SELECT E FROM MyClass E WHERE E.value IN (:VALUES)");
query.setParameter("VALUES", values);
query.list();
如您所见,字段“value”的类型是Byte,而参数是Integers列表。我该怎么做才能告诉hibernate摆脱ClassCastException并忽略参数的类型?
答案 0 :(得分:0)
当然,您应该将列表更改为List<Byte>
。我想你已经将它改为Integer
,因为行values.add(1)
中的编译时错误。在这里,您应该将此常量显式转换为byte
:
List<Byte> values = new ArrayList<Byte>();
values.add((byte)1);
values.add((byte)2);