2015-01-03 59 views
2

使用以下函数获取sql date的月份。但我没有得到正确的信息,它显示异常,任何人请帮助我如何从sql日期和月份中获取月份等于使用Hibernate条件的传递参数月份

public static List<data> getCount(Long month,String activity) 
       {  
      session = HibernateUtils.getHibernateConnection(); 
          Criteria c = session.createCriteria(Statement.class, "statement"); 
          Criteria text = c.createAlias("activity", "activity"); 
          c.add(Restrictions.eq("activity.defintionType",activity)); 
          c.add(Restrictions.eq("month(statement.stored)",month)); 
     alist= c.list(); 
    } 
+0

哪个例外...? – Dici

+0

c.add(Restrictions.eq(“month(statement.stored)”,month));例外是:这是不正确的格式, – VSN

+0

编辑您的问题与完整的StackTrace – Dici

回答

2

改变这一行:

c.add(Restrictions.eq("month(statement.stored)",month)); 

这样:

c.add(Restrictions.sqlRestriction("month(stored) = ? ", 1,Hibernate.INTEGER)); 

假设提供的月份参数是数字类型。

+0

感谢您的评论。但乌尔的解决方案是行不通的。我找到了另一种解决方案。 c.add(Restrictions.sqlRestriction(“month(stored)=?”,1,Hibernate.INTEGER));这一个工作 – VSN

+0

我更新了答案。 –

相关问题