NutzCN Logo
问答 数据库字段为null,查询结果不显示此字段
发布于 1818天前 作者 hongpeiGitHub 3901 次浏览 复制 上一个帖子 下一个帖子
标签:

String create_time = (String) map.get("create_time");
String ctnNo = (String) map.get("ctnNo");
String ladingBillNumber = (String) map.get("ladingBillNumber");
String state = (String) map.get("state");
String page = (String) map.get("page");
String size = (String) map.get("size");
Sql sql = dao.sqls().create("fxDaoImpl.packingList");// 查询的全部
StringBuffer cnd = new StringBuffer();

    if (!"".equals(StringUtil.nvl(create_time))) {
       cnd.append(" and date(create_time) = '" + create_time + "' ");
    }
    if (!"".equals(StringUtil.nvl(ctnNo))) {
       cnd.append(" and ctnNo = '" + ctnNo + "' ");
    }
    if (!"".equals(StringUtil.nvl(ladingBillNumber))) {
       cnd.append(" and ladingBillNumber = '" + ladingBillNumber + "' ");
    }
    if (!"".equals(StringUtil.nvl(state))) {
       if("0".equals(state)) {
         cnd.append(" and state in(1,2)");
       }else {
         cnd.append(" and state = '" + state + "' ");
       }
    }
    cnd.append("order by create_time DESC ");
    sql.vars().set("condition", cnd.toString());
    int pageNumber = StringUtil.parseInt(page);
    int pageSize = StringUtil.parseInt(size);
    return this.findPaginationBySqls(sql, pageNumber, pageSize);
22 回复

/* fxDaoImpl.packingList */
select *,DATE_FORMAT(stuffingTime,"%Y-%m-%d") sfTime from ifm_packinglist
where 1 = 1
$condition

@Ok("json:full")

@Override
@Ok("json:full")
public QueryResult packingListIF(Map<String, Object> map) {
// TODO Auto-generated method stub
String create_time = (String) map.get("create_time");
String ctnNo = (String) map.get("ctnNo");
String ladingBillNumber = (String) map.get("ladingBillNumber");
String state = (String) map.get("state");
String page = (String) map.get("page");
String size = (String) map.get("size");
Sql sql = dao.sqls().create("fxDaoImpl.packingList");
StringBuffer cnd = new StringBuffer();

    if (!"".equals(StringUtil.nvl(create_time))) {
       cnd.append(" and date(create_time) = '" + create_time + "' ");
    }
    if (!"".equals(StringUtil.nvl(ctnNo))) {
       cnd.append(" and ctnNo = '" + ctnNo + "' ");
    }
    if (!"".equals(StringUtil.nvl(ladingBillNumber))) {
       cnd.append(" and ladingBillNumber = '" + ladingBillNumber + "' ");
    }
    if (!"".equals(StringUtil.nvl(state))) {
       if("0".equals(state)) {
         cnd.append(" and state in(1,2)");
       }else {
         cnd.append(" and state = '" + state + "' ");
       }
    }
    cnd.append("order by create_time DESC ");
    sql.vars().set("condition", cnd.toString());
    int pageNumber = StringUtil.parseInt(page);
    int pageSize = StringUtil.parseInt(size);
    return this.findPaginationBySqls(sql, pageNumber, pageSize);
}

@wendal
还是不行哇

仔细看了看你的代码,分分钟被注入啊, 用

Cnd cnd = Cnd.NEW();
cnd.andEx("date(create_time)", "=", create_time); // 自动判断空值空字符串, 而且不会被注入
// 何须StringBuffer, 也不需要toString()

再说, 既然你说空字段为null, 先确定一下findPaginationBySqls返回的内容里面有没有那些字段

@Ok("json:full") 会把所有字段都输出成json的

@Override
@Ok("json:full")
public QueryResult packingListIF(Map<String, Object> map) {
// TODO Auto-generated method stub
String create_time = (String) map.get("create_time");
String ctnNo = (String) map.get("ctnNo");
String ladingBillNumber = (String) map.get("ladingBillNumber");
String state = (String) map.get("state");
String page = (String) map.get("page");
String size = (String) map.get("size");
Sql sql = dao.sqls().create("fxDaoImpl.packingList");
Cnd cnd = Cnd.NEW();
cnd.andEX("date(create_time)", "=", create_time);
cnd.andEX("ctnNo", "=", ctnNo);
cnd.andEX("ladingBillNumber", "=", ladingBillNumber);
/*StringBuffer cnd = new StringBuffer();

    if (!"".equals(StringUtil.nvl(create_time))) {
       cnd.append(" and date(create_time) = '" + create_time + "' ");
    }
    if (!"".equals(StringUtil.nvl(ctnNo))) {
       cnd.append(" and ctnNo = '" + ctnNo + "' ");
    }
    if (!"".equals(StringUtil.nvl(ladingBillNumber))) {
       cnd.append(" and ladingBillNumber = '" + ladingBillNumber + "' ");
    }
    if (!"".equals(StringUtil.nvl(state))) {
       if("0".equals(state)) {
         cnd.append(" and state in(1,2)");
       }else {
         cnd.append(" and state = '" + state + "' ");
       }
    }
    cnd.append("order by create_time DESC ");*/
    //sql.vars().set("condition", cnd.toString());
    sql.vars().set("condition", cnd);
    int pageNumber = StringUtil.parseInt(page);
    int pageSize = StringUtil.parseInt(size);
    return this.findPaginationBySqls(sql, pageNumber, pageSize);
}

@wendal
还是不返回null的字段 findPaginationBySqls有这些字段 并且是 null

packingListIF不是入口方法?

入口是个接口 难道要在接口处注解?

@Ok仅在入口方法生效, 你说的缺null字段,指的是前端吧?

是滴 后台的确有这些值,在前端没有返回,写在了入口 还是没有返回值

逐层debug

确认一下入口方法的方法返回值是否有那些字段
确认一下服务器的响应内容是否有那些字段
确认一下js代码是否拿到那些字段

已经找到原因 就是json过滤了 不过@OK没有用

Json.toJson() 我用的就是这个方法

用@Ok输出json呀, 何须自行调用Json.toJson

能详细说说@OK的用法吗?关键我需要有返回的呢

基本上不会返回String

解决了 用 Json.toJson(pet, JsonFormat.full()); 不忽略null值 OK 了

你应该 return pet 然后 @Ok("json:full")

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