关于Hibernate的一个诡异问题 我们的应用是一个网页游戏服务端,用Hibernate查询一批数据的时候,结果有时候会只有1条,实际应该是多条记录。改用jdbc查询,每次都是多条记录,好几个查询的地方都出现这个问题,求高手指点! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码如下: public List<JuDian> getJuDianLatestInfo(){ String hql= "from JuDian where startTime >= ?"; return (List<JuDian>)getHibernateTemplate().find(hql, BuLuoService.getJudianStartTime()); } 语句也没什么毛病、会不会是日期处理的问题、你的BuLuoService.getJudianStartTime()返回的类型是什么的?startTime 在数据库中的类型是什么? startTime 在数据类型。。很重要。。是不是string类型。。不是datetime类型 谢谢楼上各位的回答,java程序里面的startTime是 java.util.Date类型,数据库里面是datetime类型(mysql),代码如下: public static Date getJudianStartTime(){ Calendar startTime = Calendar.getInstance(); startTime.set(Calendar.HOUR_OF_DAY, 5); startTime.set(Calendar.MINUTE, 0); startTime.set(Calendar.SECOND, 0); startTime.set(Calendar.MILLISECOND, 0); startTime.add(Calendar.DAY_OF_MONTH, -6); return startTime.getTime(); } 可以试试把hql的where条件去掉,还会不会返回1条?不是的话可以确定是where条件的问题 你检查一下 .hbm中的类型是不是错了 默认的好像不是datatime 或者只能去掉where条件了 在试试 可不可以在hibernate查询你觉得有问题当时 换成hql对应的sql去数据库直接查? 感觉应该是你的代码有点问题,感觉那个List接受存储数据的时候不是添加,而是写成替换了。你把那一段代码发出来看一下。 试试将(List<JuDian>)getHibernateTemplate().find(hql, BuLuoService.getJudianStartTime())中的BuLuoService.getJudianStartTime()转换为java.sql.Date类型 struts2 jquery 校验 java可以调用CAD吗? java 回滚 savepoint请教 mysql连接池 关于ssh实现一对多 高分求助:域名访问丢失Session的问题(Lotus和WebSphere) JavaMail问题.急~!在线等. jboss 开发BMP报出找不到表?? 请大家推荐几本关于使用Java开发Web Service 的好书! SSH整合 关于struts2 多个文件上传问题。 CXF WebService的客户端,如果通过 wsdl 得到服务方法的参数信息.
public List<JuDian> getJuDianLatestInfo(){
String hql= "from JuDian where startTime >= ?";
return (List<JuDian>)getHibernateTemplate().find(hql, BuLuoService.getJudianStartTime());
}
语句也没什么毛病、会不会是日期处理的问题、你的BuLuoService.getJudianStartTime()返回的类型是什么的?startTime 在数据库中的类型是什么?
public static Date getJudianStartTime(){
Calendar startTime = Calendar.getInstance();
startTime.set(Calendar.HOUR_OF_DAY, 5);
startTime.set(Calendar.MINUTE, 0);
startTime.set(Calendar.SECOND, 0);
startTime.set(Calendar.MILLISECOND, 0);
startTime.add(Calendar.DAY_OF_MONTH, -6);
return startTime.getTime();
}
你把那一段代码发出来看一下。