jfinal 中 Page<M>的问题

发布于 2021-11-15 10:50:30 字数 2770 浏览 742 评论 1

public Page<M> queryPage(int pn,int ps,String condition)
{
     Page<M> datas = this.paginate(pn, ps, "select id ", String.format( "from %s where %s",getTableName(),condition));
    if(datas.getTotalRow()==0) return datas;
    List<M> modelList = datas.getList();
    //获取所有数据
    String ids = "";
    for(M m:modelList)
    {
        ids = ids+m.getInt("id")+",";
    }
    ids = ids.substring(0, ids.length()-1);
    //这个写法有问题,没办法设置到datas里面
    //modelList = findWhere(String.format("id in(%s)",ids));

    List<M> ms = findWhere(String.format("id in(%s)",ids));
    for(int i = 0; i < ms.size(); i++)
    {
        modelList.set(i, ms.get(i));
    }

    return datas;

}

public List<M> findWhere(String condition) {

    return this.find( String.format( "select * from %s where "+condition,getTableInfo().getTableName()));
}


问题如下:

List<M>肯定是引用类型吧。。

为啥我直接 modelList = findWhere(String.format("id in(%s)",ids)) 的结果没办法被 datas 中的 list引用到。。

也就是说我在外面调用queryPage返回的Page<M>.getList() 还是只有id值在里面。

一定要写成这样才行?

    List<M> ms = findWhere(String.format("id in(%s)",ids));
    for(int i = 0; i < ms.size(); i++)
    {
        modelList.set(i, ms.get(i));
    }

也就是说我在外面调用queryPage返回的Page<M>.getList() 有id值也有其它的列值。

   ---------实在是有点不解。。高人指点


------------- 在外面的调用如下:

Integer pn = this.getParaToInt("page");
if(pn==null) pn=1;
Integer ps = this.getParaToInt("rows");
if(ps==null) ps=20;

Page<SysConfig> cfgs = SysConfig.dao.queryPage(pn, ps, "1=1");
List<SysConfig> cfgList = cfgs.getList();

List<Object> objs = new ArrayList<Object>();
for(SysConfig cfg:cfgList)
{

HashMap<String, Object> hm = new HashMap<String, Object>();
hm.put("id", cfg.getId()); 
hm.put("pkey", cfg.get("pkey"));
hm.put("pvalue", cfg.get("pvalue"));


objs.add(hm);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

画骨成沙 2021-11-16 03:57:13

问题太冗长繁琐了,大家都比较忙,没太多时间仔细研读你的问题,自己先理清问题,修改简练点,估计会有人回答。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文