用sql和hql联合查询的时候出现异常 跪求!高分

来源:百度知道 编辑:UC知道 时间:2024/05/18 13:09:19
public List getUserTodayTC56Indent(String userId, String view, int No, int n) {

String queryString = "select indent.indent_id from indent where indent.sale_user_id=? and indent.is_deal=? and indent.trade_type='200' and (datediff(indent.indent_date,now())=0 or( datediff(indent.indent_date,now())=1 and receive_date like '明天%'))";
Query query = session.createSQLQuery(queryString);
// 0-未完成的订单 1-已完成的订单
query.setParameter(0, userId);
query.setString(1, view);
List indentIds = query.list();
// 查询订单
if (indentIds.size() > 0) {

queryString = " from Indent i where i.indentId in (:indentIds) order by i.indentDate desc";
query = session.createQuery(queryString);
// 从第几条记录开始
query.setFirstResult(No - 1);
query.setMaxResults(n);
query.setParameterList("indentIds", indentIds);

return query.list();

} else {<

可能这种方式不是很好 一般都是用date=你设定的date条件 这样的话你用simpleDateFormat来把你的date条件的格式设置一下“YYMMDD”大体上是这样!

楼主别的不看,你的HQL语句就有问题!
hibernate是操纵的对象!
比如
select table.aaa,table.bbb from table where name = 1 and pwd =1 ;

HQL

select 实体类中的字段1,字段2 from 实体类类名 where 实体类中的字段1='',字段2=‘’

问题2:你连事务(transaction)都没!!!
要打开事务然后处理然后关闭事务就OK了

我这样分析下来后 LZ 你看会不会出现异常?

楼主明白不??

query.setParameter(0, userId);
这句中userId是String类型的,
应该写成query.setString(0, userId);

java.lang.ClassCastException: java.lang.Character
类型转换出错