Session.load()这个方法还真是怪!

07-08-03 savage429

以前在eclipse3.1下做了个小项目,struts+hibernate,昨天迁到3.2下出了问题,于是用myeclipse又从新做了下,两种架构都是myeclipse导入的,然后在dao包里写了个逻辑处理的类,其中用到Session session的load方法时,原来在3.1下没有问题的代码报错,什么load里面的参数应该是class和Serializable型,可是为什么我原来用的long型可以现在就不行了呢?

/**

* 根据id信息从数据库中找到对应的信息

*

* @SavageGarden

* @param id

* @return

* */

public Cd getCD(long id){

//通过Session从数据库中取得CD信息

Cd cd;

try {

cd = (Cd)session.load(Cd.class,id);

//提交事务

transaction.commit();

} catch (Exception e) {

// TODO 自动生成 catch 块

cd=null;

e.printStackTrace();

}

return cd;

}

就是这句cd = (Cd)session.load(Cd.class,id);报错

然后还有就是在action里的request.setAttribute(),我拿个boolean型的变量做参数它又报错应该为object型

boolean result=dbManager.addCD(cd);

//为request对象设置“addresult”属性

request.setAttribute("addresult",result);

就是这句request.setAttribute("addresult",result);报错

是不是我的配置文件什么地方写错了呢?大家给看下,我的bean和bean.hbm.xml里面的id就是long型的 怎么回事啊,明明在3.1下没有错误的,怎么在3.2下就不行了呢

1
oyjt301
2007-08-03 16:48

问:request.setAttribute("addresult",result);

答:在setAttribute里面的值,它要是个Object类型。

普通的int或boolean类型在转相应的对象 类型才可以。

wzju64676266
2008-11-25 15:00

(Cd)session.load(Cd.class,new Long(id));这样就可以了