急急急急急急急急急 jfinal Db.paginate分页返回对象为Record报错

请教波总最近我在用多表联查返回多表不同字段做分页查询用的jfinal的db.Db.paginate()做的分页但是执行的时候报错,Invalid argument value: java.lang.ArrayIndexOutOfBoundsException,数组越界,以下为源码望波总帮助解答。

public Page<Record> getByParamInOrderItem(Map<String, Object> values, int pageNumber, int pageSize) {

StringBuffer sql = new StringBuffer(

"FROM ppzu_in_order_item item LEFT JOIN ppzu_in_order o ON item.order_id = o.id WHERE 1=1 ");

List<Object> params = new ArrayList<Object>();

if (values.containsKey("serialNo")) {

sql.append(" and o.serial_no like ?");

params.add("%" + values.get("serialNo") + "%");

}

if (values.containsKey("startDate")) {

sql.append(" and o.in_date >= ?");

params.add(values.get("startDate"));

}

if(values.containsKey("endDate")){

sql.append(" and o.in_date <= ?");

params.add(values.get("endDate"));

}

if (values.containsKey("stateId")) {

sql.append(" and o.state_id = ?");

params.add(values.get("stateId"));

}

if (values.containsKey("storeId")) {

sql.append(" and o.store_id = ?");

params.add(values.get("storeId"));

}

if (values.containsKey("comeType")) {

sql.append(" and o.come_type = ?");

params.add(values.get("comeType"));

}

String str =  " FROM (SELECT o.id,"

+ "o.serial_no,"

+ "o.come_type,"

+ "o.store_id,"

+ "o.in_date,"

+ "o.state_id,"

+ "o.state_name,"

+ "item.goods_type,"

+ "item.count,"

+ "item.goods_name,"

+ "store.name "+sql.toString()+" ) inorder";

return Db.paginate(pageNumber, pageSize, "select inorder.*  ", str, params);

}


评论区

JFinal

2017-09-22 13:41

设置 arp.setShowSql(true),将 sql 输出,数一数里面的问号个数,然后设置断点单步调试看一下参数的个数,会发现 sql 中问号个数与参数个数不同,必然要抛出异常

Java填坑人

2017-09-22 16:39

里面没有问号
查询条件都是空的

JFinal

2017-09-22 16:57

Java填坑人

2017-09-22 17:05

我刚试了一下传的参数集合进去就会报错这是为什么条件什么都没有

Java填坑人

2017-09-22 17:13

public Page getByParamInOrderItem(){
JSONArray ss = new JSONArray();
return Db.paginate(1, 2, "select * ", " FROM ppzu_in_order_item WHERE order_id = 136 ",ss);
}这样就报错就是上面的错误如果去掉后面的参数ss就可以正常执行

JFinal

2017-09-22 17:25

@Java填坑人 单步调试排错,这个错误太基础了,没有了回答你的空间:ArrayIndexOutOfBoundsException

Java填坑人

2017-09-26 10:29

@JFinal 我刚看了下源代码Db.paginate接收到我传的是list进去但是源码里面接收就成了二维数组了这是为什么啊

热门反馈

扫码入社