hibernate中如何执行mysql语句select * from work where month(date) = 3
如果能用criteria解决更好

解决方案 »

  1.   

    session.createCriteria(work.class).add(Restrictions.eq("month", 3)).list();return (List) getHibernateTemplate().execute(
       new HibernateCallback() {
    public Object doInHibernate(Session session)
    throws HibernateException {
    return (List) session.createCriteria(work.class).add(Restrictions.eq("month", 3)).list();
      

  2.   

    拿到hibernate session以后
    SQLQuery query=session.createSQLQuery("select * from work where month(date) = 3 ");
    List list=query.list();
    所返回list就是执行sql语句的结果集使用criteria:
    假设你的work表对应的类名为Work
    你所查询的条件month对应为类中属性month
    Criteria criteria=session.createCriteria(Work.class,"w");
    criteria.add(Restrictions.eq("w.month",3);
    List list=criteria.list();
    所返回list结果跟执行sql语句结果一样。
      

  3.   

    我自己写了如下函数: 
    public List order(){ 
    SQLQuery query=getSession().createSQLQuery("select sum(salary),month(date) month from emp group by month(date) "); 
    List list=query.list(); return list; 

    最后我得到的是LIST类的一个对象 我现在想把其中的sum和mouth分别取出来,请问如何操作