// 根据访问者Ip来统计下当日提交记录次数
public int getCountByNowDate(String ip) throws Exception {
Session session = this.getSession();
List list = session
.createSQLQuery(
"select count(*) from UserReport where reportIp='"
+ ip
+ "'"
+ " and (CONVERT(varchar(10), AddDate, 120) = CONVERT(varchar(10), GETDATE(), 120))")
.addEntity(UserReport.class).list();
this.releaseSession(session);
if (list.size() > 0) {
return ((Long) list.get(0)).intValue();
} else
return 0;
}
运行这个方法报一下错误
Hibernate: select count(*) from UserReport where reportIp='127.0.0.1' and (CONVERT(varchar(10), AddDate, 120) = CONVERT(varchar(10), GETDATE(), 120))
08:38 WARN JDBCExceptionReporter:77 - SQL Error: 0, SQLState: S1093
08:38 ERROR JDBCExceptionReporter:78 - 列名 ID 无效。
隐射关系没有应该没有错误,检查了很多次了 ,就是不知道问题所在,大家帮我看看,谢谢各位了!
所以就报了错,找不到你UserReport的其他属性,也就是列。
建议你将sql语句改为Hql语句,获取去掉addEntity后面的,那么返回就不是list而是一个obj,将obj转换为int就OK了,给分。
return ((Long) list.get(0)).intValue();
返回的值却是Long
String begin=df.format(begintime);
String end=df.format(endtime);
//where那里
where hql+ = "and t.begintime >"+begin+" and t.endtime < "+end;
改成这样