HQL即使在执行createNativeSQL的时候,碰到::varchar转类型的表达式的时候,也会把::varchar拆分成:varchar 当作输入变量。
有两种解决方法:1是找到HQL的转义字符,使HQL不把::varchar拆分成变量输入;2 替换nativeSQL的转换形式,避免:的使用。
网上大部分是对like %%进行处理的文章。这个不适用于我现在碰到的情况。
解决方案:对NativeSQL进行修改。转类型的时候,使用cast(numberOfMoney as varchar),进行处理,避免HQL的赋值问题