求助!getHibernateTemplate.update()不起作用

okboy19 2011-03-20 02:51:09
使用了s2sh的框架

action里的一个方法
save(){

Person person = personService.getPerson(num);//num是页面传递过来的参数,页面还传递了name,account等一大堆参数过来

if (person == null)//如果根据num找不到person,就新增 personService.addPerson(this.getPerson());
else//如果找到了person,就更新
personService.updatePerson(this.getPerson());
//this.getPerson得到应该是一个根据页面传递的参数而新生成的实例吧?
}

personService.updatePerson这个方法里直接调用了
getHibernateTemplate.update(person)

运行时不报错,但是不起作用。
查了一下,似乎是因为person不是数据库里获得的实体,而是new出来的实例,所以Update不起作用。
那我要更新某个person的信息,难道要先get它出来,然后用setter一项一项去set之后,才能用Update吗?
...全文
1401 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
z23bin 2012-09-13
Person应该是从数据库中的某张表映射出来的,才可以用getHibernateTemplate.update(person)更新。比如你数据库中有张Person的表,把他映射成实体类Person。
回复
wkcgy 2011-03-22
http://wkcgy.javaeye.com/
在我的收藏里面!!
回复
okboy19 2011-03-21
请无视2,3楼的回帖。。。
回复
okboy19 2011-03-21
[Quote=引用 5 楼 wkcgy 的回复:]

推荐看一下robbin的hibernate的帖子!!讲的很好!!其中有一篇是关于save和update的!!
[/Quote]

谢谢这位朋友回帖啊~~求传送门
回复
wkcgy 2011-03-21
推荐看一下robbin的hibernate的帖子!!讲的很好!!其中有一篇是关于save和update的!!
回复
wkcgy 2011-03-21
呵呵自问自答....
回复
okboy19 2011-03-20
解决了
给person表加多一列 seq_num 作为自增
num字段作为一个普通的property
就行了
回复
okboy19 2011-03-20
在person表里,没有自增长的标识列,主键是num,nchar类型。
在person.hbm.xml里
<id name="num" type="string">
<column name="num" />
<generator class="native" />
</id>
会不会与这个配置有关?
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2011-03-20 02:51
社区公告
暂无公告