我去,当使用date类型的字段去和long做比较的时候,这个类型的结果在hibernate中返回时会变成long。那么这个long转为date时就会失败。异常如下:
java.lang.IllegalArgumentException: Parameter value [1373009899491] did not match expected type [java.util.Date]
主要是由于以下代码引起:
@Override
public Collection<OnlineDec> fetchOrderPushDec(int lon, int lat,Pagination pagination, int redius, String status,long minRefreshTime) throws Exception {
String sql = "from OnlineDec where longitude between ? and ? and latitude between ? and ? and status= ? and positime > ? ";
positime在onlinedec中,是一个date类型的数据,如果使用minRefreshTime和它进行比较之后,返回结果中不知道为什么就成为了一个long型,好像是当前时间减去minRefreshTime的时间的long值。
所以只能最后改为使用date型的值与positime进行比较菜不会出错。