小弟刚在看尚学堂的OA视频,跟着人家开发public void addOrg( Orgnization org, int parentId )
{
if(parentId !=0)

org.setParent ((Orgnization)this.getHibernateTemplate ( ).load (Orgnization.class , parentId));
}
this.getHibernateTemplate ( ).save (org);
}
}上面的是实现public void addOrg(Orgnization org,int parentId);这个是接口
上面的实现有什么错误吗?
貌似它说LOAD的参数不匹配在网上找了一下,说是要将int封装成Integer型 ,改后真的是可以了,但我搞不懂的是,这个不应该是会自动转换的吗?何况人家在视频里也是直接传一个int型的也没有错,为什么我的就成这样了呢??那位前辈懂的麻烦说一下,小弟刚学,不太懂,先拜谢了

解决方案 »

  1.   

    load 
    update
    delete都出现了一样的情况
      

  2.   

    sunyujia 正确。
    jdk5增加了一个特性AutoBoxingLZ用的肯定是低于JDK5的版本, 要么换JDK,要么就用new Integer(id)....
      

  3.   

    我用的JAVA版本是1.6的
      

  4.   

    save方法的参数是临时对象,它将临时对象持久化为持久化对象;
    update方法的参数是游离对象,它将游离对象持久化为持久化对象;
    saveOrUpdate方法的参数即可以是临时对象也可以是游离对象,它可以自动判别是游离还是临时对象,再将参数持久化为持久化对象;可能是你那对象的状态不是临时对象吧,你试用saveOrUpdate()试一下.
      

  5.   

    给有同样问题的朋友留下我的解决方案在myeclipse里的选项里找到java----Complier要将里面的JDK Compliance设为5.0或以上,就可以了
      

  6.   

    org.setParent ((Orgnization)this.getHibernateTemplate ( ).load (Orgnization.class ,new Integer(parentId)));