解决一个Hibernate的 unsaved-value问题散分200

v38 2007-02-07 06:21:30
做一个小东西,自已重新建了一个spring+hiberante+struts框架,在此框架中开发。
为提高开发速度,在struts 的Action form Bean 采用了LazyValidatorForm。
在Action 中用BeanUtil.copyproperits()来把值从form中加载到pojo对象中,
在保存这个pojo时,调用由spring托管的Hibernate底层的saveOrUpdate()方法来持久化。
这时问题来了,老是报错,无法通过。
通过调置断点,发现在用BeanUtil.copyproperits()拷贝的时候,pojo中的ID主键本是NULL的,被BeanUtil.copyproperits()设置为了0
当pojo传给DAO的saveOrUpdate()方法时,因其实ID为0,误认为此操作为update.

在hibernate 的mapping xml的<id> 中,加入unsaved-value=0
问题解决,且当id不为0为NULL的时候,也会被正常的判断为SAVE操作

特此散分~
...全文
446 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
howyeahz2 2007-02-17
  • 打赏
  • 举报
回复
接分过年,就好象收利市一样,开心开心,呵呵呵呵~~~~~
v38 2007-02-09
  • 打赏
  • 举报
回复
结贴,以下回复无效
theseraph 2007-02-09
  • 打赏
  • 举报
回复
给分不接,实乃有罪
okcome 2007-02-09
  • 打赏
  • 举报
回复
呵呵,看来赶上了
limao1358 2007-02-09
  • 打赏
  • 举报
回复
我公司的项目中用的也是DTO拷贝,不过我想用清缓存,我公司中的拷贝还是深度拷贝,连集合属性都可以,我觉得是不是用清除缓存效果要好点.
jicken_woo 2007-02-09
  • 打赏
  • 举报
回复
-_-#
  • 打赏
  • 举报
回复
呵呵,接之
shan1119 2007-02-09
  • 打赏
  • 举报
回复
接分
Rick_ang 2007-02-09
  • 打赏
  • 举报
回复
接分
v38 2007-02-09
  • 打赏
  • 举报
回复
恭喜.你用的是DTO拷贝??
=====================
是的,没有想到BeanUtil自多做情,把NULL给当0了,折腾了我半天
long_drago 2007-02-08
  • 打赏
  • 举报
回复
有学到点东西
limao1358 2007-02-08
  • 打赏
  • 举报
回复
恭喜.你用的是DTO拷贝??
v38 2007-02-08
  • 打赏
  • 举报
回复
怎么没有人接分啊?十个人以上就结貼
Eddie005 2007-02-07
  • 打赏
  • 举报
回复
接分~
blh 2007-02-07
  • 打赏
  • 举报
回复
不懂 :)
sg552 2007-02-07
  • 打赏
  • 举报
回复
呵呵。。。恭喜楼主!!!

解决问题之后的快感,不是一般的爽!!!

羡慕!!!
v38 2007-02-07
  • 打赏
  • 举报
回复
为什么我的分没有接?
被BS了:(汗一个

23,409

社区成员

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

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