NutzCN Logo
问答 表字段 网页传入Java字段 如何获取 Column
发布于 1795天前 作者 Hamming 1357 次浏览 复制 上一个帖子 下一个帖子
标签:

表字段 网页传入Java字段 如何获取 Column

@Column("data_scope")
    @Comment("数据范围 ")
    private String dataScope;
9 回复

页面 传入 String data = "dataScope";
Cnd.NEW().orderBy( data,"asc");
这样肯定报错 不是数据库data_scope;
有没有方法可以去到 dataScope 对应的data_scope 的值

dao.getEntity(XXX.class).getColumn("data_scope").getName();

事实上order by 写data_scope也不报错, 注意防注入

空指针异常
好像有问题

java.lang.NullPointerException
	at io.nutz.nutzsite.common.base.Service.tableList(Service.java:283)
	at io.nutz.nutzsite.module.sys.controllers.UserController.list(UserController.java:85)
	at io.nutz.nutzsite.module.sys.controllers.UserController$FM$list$408746d29ae439cb459b03dfdeac110b.invoke(UserController.java)
	at org.nutz.mvc.impl.processor.MethodInvokeProcessor.process(MethodInvokeProcessor.java:31)

    /**
     * 分页查询数据封装 查询关联数据
     * @param pageNumber
     * @param pageSize
     * @param cnd
     * @param linkname
     * @return
     */
    public TableDataInfo tableList( int pageNumber, int pageSize,Cnd cnd,String orderByColumn,String isAsc,String linkname){
        Pager pager = this.dao().createPager(pageNumber, pageSize);
        if (Strings.isNotBlank(orderByColumn) && Strings.isNotBlank(isAsc)) {
            String orderby = dao().getEntity(this.getEntityClass()).getColumn(orderByColumn).getName();
            cnd.orderBy(orderby,isAsc);
        }
        List<T> list = this.dao().query(this.getEntityClass(), cnd, pager);
        if (!Strings.isBlank(linkname)) {
            this.dao().fetchLinks(list, linkname);
        }
        return new TableDataInfo(list, this.dao().count(this.getEntityClass(),cnd));
    }

既然是空指针, 先搞清楚什么为null

取值为空

 MappingField  data =dao().getEntity(this.getEntityClass()).getColumn(orderByColumn);

哪个值? data是null?

看上去Service是个通用类? getEntityClass返回了啥?

调整成这样 可以去到了
感谢兽总@wendal

MappingField  data =dao().getEntity(this.getEntityClass()).getField(orderByColumn);
            data.getColumnName();
添加回复
请先登陆
回到顶部