BbsDao中查询最新的Bbs公告,转换为查找主键值最大的记录。
DAO中的方法:
public Bbs findBbsByMaxId()
{
return (Bbs)this.getHibernateTemplate().find(
"from Bbs where id = (select max(id) from Bbs)");
}Action中的方法:
public String listNewBbs() throws Exception
{
System.out.println("查找最新BBS");
bbs = this.bbsService.findBbsByMaxId();
System.out.println(bbs.getId());//在控制台这条语句没有输出值!
System.out.println("查找最新BBS完毕!");
return SUCCESS;
}控制台输出结果:查找最新BBS
Hibernate: select bbs0_.ID as ID0_, bbs0_.content as content0_, bbs0_.inTime as inTime0_ from bluedotbookshop.tb_bbs bbs0_ where bbs0_.ID=(select max(bbs1_.ID) from bluedotbookshop.tb_bbs bbs1_)找了半天,不知问题出在哪了,各位帮忙看看……

解决方案 »

  1.   

    action中这个bbs在哪定义的?代码贴完整点哈
      

  2.   

    public class ManageBbsAction extends ActionSupport
    {
    private Bbs bbs;
    private BbsService bbsService;

    public Bbs getBbs()
    {
    return bbs;
    } public void setBbs(Bbs bbs)
    {
    this.bbs = bbs;
    } public BbsService getBbsService()
    {
    return bbsService;
    } public void setBbsService(BbsService bbsService)
    {
    this.bbsService = bbsService;
    }
    @SuppressWarnings("unchecked")
    public String listNewBbs() throws Exception
    {
    System.out.println("查找最新BBS");
    bbs = this.bbsService.findBbsByMaxId();
    System.out.println(bbs.getId());
    Map request = (Map)ActionContext.getContext().get("request");
    request.put("list", bbs);
    System.out.println("查找最新BBS");
    return SUCCESS;
    }
    }
      

  3.   

    [Quote=引用 2 楼 oyto12o 的回复:]
    引用 1 楼 fireelf000 的回复:
     action中这个bbs在哪定义的?代码贴完整点哈
    public class ManageBbsActionextends ActionSupport
    {private Bbs bbs;private BbsService bbsService;public Bbs getBbs()
        {return bbs;
        }publicvoid setBbs(Bbs bbs)
        {this.bbs= bbs;
        }public BbsService getBbsService()
        {return bbsService;
        }publicvoid setBbsService(BbsService bbsService)
        {this.bbsService= bbsService;
        }
        @SuppressWarnings("unchecked")public String listNewBbs()throws Exception
        {
            System.out.println("查找最新BBS");
            bbs=this.bbsService.findBbsByMaxId();
            System.out.println(bbs.getId());
            System.out.println("查找最新BBS完毕!");return SUCCESS;
        }
    }
      

  4.   

    上面那个格式不好看,重新贴下public class ManageBbsAction extends ActionSupport
    {
        private Bbs bbs;
        private BbsService bbsService;
            
        public Bbs getBbs()
        {
            return bbs;
        }    public void setBbs(Bbs bbs)
        {
            this.bbs = bbs;
        }    public BbsService getBbsService()
        {
            return bbsService;
        }    public void setBbsService(BbsService bbsService)
        {
            this.bbsService = bbsService;
        }
        @SuppressWarnings("unchecked")
        public String listNewBbs() throws Exception
        {
            System.out.println("查找最新BBS");
            bbs=this.bbsService.findBbsByMaxId();
            System.out.println(bbs.getId());
            System.out.println("查找最新BBS完毕!");
            return SUCCESS;
        }
    }
      

  5.   

    return (Bbs)this.getHibernateTemplate().find( 
    "from Bbs where id = (select max(id) from Bbs)"); 
    此返回的是一个list吧,如果再要得到,list虽只有一条记录,但不可以直接转换成Bbs吧,要遍历一下!
      

  6.   

    改为:
    public Bbs findBbsByMaxId() 

    return (Bbs)this.getHibernateTemplate().find( 
    "from Bbs where id in (select max(id) from Bbs)");