Hibernate 修改实体问题

zy2419 2008-09-23 11:28:59
Employee 类对应 employee表 大概有 20个字段。
我要修改一个员工信息时大概表单里有15个熟悉可能要被修改,我选择修改整个实体,但是在修改后 其他5个字段的值在数据库中的值变成空了,

在action里面我时这么做的:注入employeeService ,new一个employee对象,从表单获得数据填充这个对象, 底层执行的方法时 getSession().saveorUpdate(),

还试了先从数据库取得当前要修改的对象 再从表单获得数据set进去,但是提示 two open sessions 错误。

不知道如何解决
...全文
226 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy2419 2008-09-29
  • 打赏
  • 举报
回复
再顶
山巅 2008-09-26
  • 打赏
  • 举报
回复
顶!!!!!!!!!!!
zy2419 2008-09-26
  • 打赏
  • 举报
回复
上去啊~~
zy2419 2008-09-25
  • 打赏
  • 举报
回复
spring 里面就是注入Service

jinsu_st 2008-09-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zy2419 的回复:]

从数据库根据Pk字段查对象然后在修改都是用employeeService的不同方法来实现的,这个算是一个session…
[/Quote]
项目是ssh?
那要看你spring里面怎么配置的了。你试试在 service中一个方法里面 查对象,并修改它。

最好 上码看看。
zy2419 2008-09-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fengsky491 的回复:]
关键就是在new一个employee对象那出问题了。
应该是申明一个employee对象,根据你要更新的employee对象的PK查出你的employee实体,
把查出的实体赋值给申明的employee对象
再把从表单获取的数据set进去。
执行saveorUpdate()。
[/Quote]\

我试过这种方法,但是提示 打开2个session的错误。

从数据库根据Pk字段查对象然后在修改都是用employeeService的不同方法来实现的,这个算是一个session么?
jinsu_st 2008-09-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 zy2419 的帖子:]
Employee 类对应 employee表 大概有 20个字段。
我要修改一个员工信息时大概表单里有15个熟悉可能要被修改,我选择修改整个实体,但是在修改后 其他5个字段的值在数据库中的值变成空了,

在action里面我时这么做的:注入employeeService ,new一个employee对象,从表单获得数据填充这个对象, 底层执行的方法时 getSession().saveorUpdate(),

还试了先从数据库取得当前要修改的对象 再从表单获得数据set进去,但是提…
[/Quote]
注入employeeService ,new一个employee对象,从表单获得数据填充这个对象, 底层执行的方法时 getSession().saveorUpdate(), 由于表单数据只填充了15个要修改的数据,所以其它5个字段为空,调用saveorUpdate()后数据为空。

先从数据库取得当前要修改的对象 再从表单获得数据set进去。但是提示 two open sessions 错误。
从数据库获取对象时打开了session,而你存数据时使用另外一个session,才提示这个错误。
方法一: 获取对象后关闭session, 修改时再打开session。
方法二: 获取对象和修改对象使用同一个session。

个人觉得第二个比较好!
yeah920 2008-09-23
  • 打赏
  • 举报
回复
帮你顶。
buzhucele 2008-09-23
  • 打赏
  • 举报
回复
在配置文件里设置 字段检测 自动更新 值改变的列
fengsky491 2008-09-23
  • 打赏
  • 举报
回复
关键就是在new一个employee对象那出问题了。
应该是申明一个employee对象,根据你要更新的employee对象的PK查出你的employee实体,
把查出的实体赋值给申明的employee对象
再把从表单获取的数据set进去。
执行saveorUpdate()。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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