为什么这会返回null?

时间:2013-03-24 20:43:53

标签: java hibernate

我成功发送了日期值。我查看了“Scoped Variables”。

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

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);
}

2 个答案:

答案 0 :(得分:0)

其中一个:

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

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

答案 1 :(得分:0)

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

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

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

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