求助!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吗?
...全文
1493 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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>
会不会与这个配置有关?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧