Hibernate 3.0.5 到3.1.3产生HQL参数检查异常

今天把系统的Hibernate版本从3.05升级到了3.1.3,结果运行时出现ClassCastException。检查发现新版本的hibernate增强了在执行HQL操作时的传入的参数的检查(Binding Parameters)。比如HQL语句中有from xxx where beginTime >= :beginTime and endTime < :endTime,在原来的程序中,我直接把beginTime和endTime都已经直接转换到了timestamp格式的String类型,这样的操作在3.0.5版本时并没有任何错误,但在升级版本后,Hibernate会检查传入的beginTime和endTime必须是Calendar类型(或者是Date类型,看你Hibernate类型的配置),结果导致在运行时出现ClassCastException。

评论联播

Your email address will not be published. Required fields are marked *