-1
Query q = session.createQuery("from FinancialTransactions where ft_TYPE='"+ftTYPE+"' Date between '"+beginDate+"' and '"+endDate+"'");

上面的查询有什么问题?它给出了错误

4

2 回答 2

2

你错过了and,这Date是一个关键字

改变

where ft_TYPE='"+ftTYPE+"' Date between 

where ft_TYPE='"+ftTYPE+"' and Date between

在你需要使用的各种条件之间AND

于 2013-04-18T11:18:19.767 回答
0

如果您使用占位符,很明显您错过了 and and,并且假设beginDateandendDate是日期,解析它们可能会遇到问题。

更好的(并且不容易发生 HQL 注入)将是:

Query q = session.createQuery(
     "from FinancialTransactions " +
    "where ft_TYPE=? " +
      "and Date between ? and ?");
q.setString(1, ftType);
q.setDate(2, startDate);
q.setDate(3, endDate);
于 2013-04-18T11:24:04.690 回答