当前位置: 代码迷 >> Java Web开发 >> getHibernateTemplate.load()方法无法传int型参数?解决方案
  详细解决方案

getHibernateTemplate.load()方法无法传int型参数?解决方案

热度:504   发布时间:2016-04-17 01:29:34.0
getHibernateTemplate.load()方法无法传int型参数???
小弟刚在看尚学堂的OA视频,跟着人家开发
Java code
public void addOrg( Orgnization org, int parentId )    {        if(parentId !=0)        {             org.setParent ((Orgnization)this.getHibernateTemplate ( ).load (Orgnization.class , parentId));        }        this.getHibernateTemplate ( ).save (org);    }}

上面的是实现
Java code
public void addOrg(Orgnization org,int parentId);

这个是接口
上面的实现有什么错误吗?
貌似它说LOAD的参数不匹配

在网上找了一下,说是要将int封装成Integer型 ,改后真的是可以了,但我搞不懂的是,这个不应该是会自动转换的吗?何况人家在视频里也是直接传一个int型的也没有错,为什么我的就成这样了呢??

那位前辈懂的麻烦说一下,小弟刚学,不太懂,先拜谢了

------解决方案--------------------
jdk5.0以上才有的自动拆装箱
------解决方案--------------------
sunyujia 正确。


jdk5增加了一个特性AutoBoxing

LZ用的肯定是低于JDK5的版本, 要么换JDK,要么就用new Integer(id)....
------解决方案--------------------
save方法的参数是临时对象,它将临时对象持久化为持久化对象;
update方法的参数是游离对象,它将游离对象持久化为持久化对象;
saveOrUpdate方法的参数即可以是临时对象也可以是游离对象,它可以自动判别是游离还是临时对象,再将参数持久化为持久化对象;

可能是你那对象的状态不是临时对象吧,你试用saveOrUpdate()试一下.
  相关解决方案