NutzCN Logo
问答 无pojo 查询 指定字段问题
发布于 2346天前 作者 menglinxi 2245 次浏览 复制 上一个帖子 下一个帖子
标签:

代码

List<Record> list =  dao().query("t_task_data", Cnd.where("taskid","=",id).and("startdate","=",cday), null,"1d,1dpn,1dpm");

数据库字段

CREATE TABLE `t_task_data` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`taskid` INT(11) NOT NULL DEFAULT '0',
	`startdate` DATE NULL DEFAULT NULL COMMENT '开始时间',
	`1d` INT(11) NULL DEFAULT NULL COMMENT '首日注册数据',
	`1dpn` INT(11) NULL DEFAULT NULL COMMENT '首日支付人数',
	`1dpm` INT(11) NULL DEFAULT NULL COMMENT '首日支付金额',
	`2d` INT(11) NULL DEFAULT NULL COMMENT '2日留存',
	`2dpn` INT(11) NULL DEFAULT NULL COMMENT '2日付费用户数',
	`2dpm` DOUBLE NULL DEFAULT NULL COMMENT '2日付费金额',
	`3d` INT(11) NULL DEFAULT NULL COMMENT '3日留存'

构建出sql代码

SELECT 1d,1dpn,1dpm FROM t_task_data  WHERE taskid=6 AND startdate='2018-05-07'

错误信息:

Method threw 'java.lang.ArrayIndexOutOfBoundsException' exception. Cannot evaluate org.nutz.dao.impl.jdbc.NutPojo.toString()

不知道,这个 数组下标越界从哪里出现的,各位大神帮忙看看

4 回复

贴完整报错信息

nutz源码里面的tescase: org.nutz.dao.test.normal.SimpleDaoTest.test_issue_1235()

    @Test
    public void test_issue_1235() {
        dao.create(Pet.class, false);
        dao.insert(Pet.create(R.UU32()));
        List<Record> list = dao.query("t_pet", null, null, "id,name");
        assertNotNull(list);
        assertTrue(list.size() > 0);
        assertEquals(2, list.get(0).size());
    }

区别是没有Cnd, 我来测一下

加上Cnd一样没问题

List<Record> list = dao.query("t_pet", Cnd.where("age", ">", 0), null, "id,name");

输出的日志

2018-05-07 16:32:24,298 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) DEBUG - SELECT id,name FROM t_pet  WHERE age>?
    | 1 |
    |---|
    | 0 |
  For example:> "SELECT id,name FROM t_pet  WHERE age>0"

代码无问题,数据问题

添加回复
请先登陆
回到顶部