mysql中sql转换成hibernate中hql文的问题

kukoukele 2007-07-06 04:54:43
List<Clerk> birthdayClerkList = null;
try{
String hql = "from Clerk cle where DATE_FORMAT(cle.birthday,'%m%d') >= " +
"DATE_FORMAT(NOW() ,'%m%d') and DATE_FORMAT(cle.birthday,'%m%d')" +
" <= DATE_FORMAT(DATE_ADD(NOW(),Interval 7 DAY) ,'%m%d')";
//Query query = getSession().createSQLQuery(hql,"cle",Clerk.class);
Query query = getSession().createSQLQuery(hql);
//Query query = getSession().createQuery(hql);
birthdayClerkList = query.list();
//birthdayClerkList = this.find(hql);
}catch (DataAccessException e) {
log.error("Error in getAllBirthdayClerkList.", e);
throw new DaoException("Error in getAllBirthdayClerkList.", e);
}
=============================================================
org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: 7 near line 1, column 187 [from com.foundersoftware.ehr.object.hr.Clerk cle where DATE_FORMAT(birthday,'%m%d') >= DATE_FORMAT(NOW() ,'%m%d') and DATE_FORMAT(birthday,'%m%d') <= DATE_FORMAT(DATE_ADD(NOW(),Interval 7 DAY) ,'%m%d')]; nested exception is org.hibernate.hql.ast.QuerySyntaxError: unexpected token: 7 near line 1
报错的大概意思是语法错误
这个问题出在哪?是不是mysql中sql转换成hibernate中hql文的问题,特别是DATE_FORMAT在hibernate中不可使用?
...全文
355 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodsun00 2010-12-31
  • 打赏
  • 举报
回复
日期 可以用<= >=比较?
mush_me 2010-12-31
  • 打赏
  • 举报
回复
跟随楼主的脚印来到此处,却得到无解。
code_JAVA 2008-05-21
  • 打赏
  • 举报
回复
DATE_FORMAT()的返回类型是啥,不是格式化成字符串吧,那就不能比较了,oracle中会用到to_date(),mysql不大清楚
haoxiongok 2008-05-12
  • 打赏
  • 举报
回复
帮楼主顶上去
IamHades 2008-05-12
  • 打赏
  • 举报
回复
语法错误撒,应该是这里:
DATE_FORMAT(DATE_ADD(NOW(),Interval 7 DAY) , '%m%d ')
你自己检查下吧,mysql不熟,所以不知道为什么错
kokobox 2008-04-30
  • 打赏
  • 举报
回复
感觉还是lz的hql拼装错误

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧