0

我成功发送了日期值。我从“作用域变量”中检查过。

这是我的 bean 中的一个函数,它调用助手中的一个函数:

public DataModel getFt() {
    ftDataModel = new ListDataModel((List) fthelper.getByBeginDate(beginDate));
    return ftDataModel;
}

这是发送beginDate到 Hibernate 的函数。但在这里它返回null。为什么?

public FinancialTransactions getByBeginDate(String beginDate){            
    List<FinancialTransactions> FtList = null;        
    try {
        org.hibernate.Transaction tx = session.beginTransaction();
        Query q = session.createQuery("from FinancialTransactions where DATE='" + beginDate + "'");
        FtList = (List<FinancialTransactions>) q.list();

    } catch (Exception e) {
        e.printStackTrace();
    }
    return FtList.get(0);
}
4

2 回答 2

0

您应该在查询中使用参数:

Query q = session.createQuery("from FinancialTransactions where DATE=:date").setParameter("date",beginDate);

应该没有内部异常,否则 FtList.get(0) 也会导致异常。

我的猜测是格式化。您使用日期的字符串表示。总是一个坏主意,因为在转换中有很多事情可能会出错。

于 2013-03-24T20:58:37.253 回答
0

其中之一:

org.hibernate.Transaction tx = session.beginTransaction();
Query q = session.createQuery("from FinancialTransactions where DATE='" + beginDate + "'");

抛出异常。使用调试器或简单的 System.out... 来查找这两者中的哪一个。

于 2013-03-24T20:51:53.760 回答