我成功发送了日期值。我查看了“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);
}
答案 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)也会导致异常。
我的猜测正在形成。您使用日期的字符串表示。总是一个坏主意,因为有很多事情可能会在转换中出错。