最近在做一个签到的任务,由于要查询到历史连续最大签到记录的值,起初还是有点迷茫的--有一种想将查询结果查询出来,然后使用算法来解决这个问题。但是折腾了半天,感觉有点难以处理,所以就google了一下和“签到”类似的处理方法,最终参考别人的实现是通过数据库来实现的,具体怎么处理这里不过多介绍了,文章结尾会将链接贴上。
回归到我需要讲解的问题--使用Hibernate 时,native sql中包含冒号(:),由于冒号在hibernate中是一个特殊的符号,用来标识预编译参数变量的.为何我会这么纠结呢,因为我们的系统定位的dao层就是使用Hibernate,所以我只好寻求能够处理好的方式(虽然我知道可以用spring jdbc来分分钟就可以实现),下面看下我初始的sql语句(看不懂也没有关系):
貌似上面的sql语句马上就可以大功告成了,因为我在sqlyog中直接复制进去可以直接将查询结果查询出来,但是当程序跑起来的时候,后台直接抛出一个异常:’Space is not allowed after parameter pref