在使用hibernate进行大批量更新数据时,有时候需要注入的参数会很长。假如你的Id是uuid生成的,批量更新上千条数据,那么如果使用in(...)这种方法的话,那么in里面采用setString(..,..)的方法那么很有可能会报这个错误,因为关联表中String的长度限制是32k,而Java终String本身是没有长度限制的,如果你的String长度超过32k,那么很有可能会报这个错误。
解决方法:这个问题实际上很简单,将in(id=xx,id=xxx....)改成id=xx or id = xxx...这种采用or关键字即可