对面向对象的一点疑问,百思不得其解
学JAVA已经有五年了,当然,我现在已经不是一个职业程序员,但一直还是把JAVA当作自己的一项技能,时时用之。但是关于面向对象设计上有个问题一直弄不懂,特别是用HIBERNATE来做数据库操作时。所以向大家讨教。
问题是这样的:比如一个User类,记载了一个用户的信息,如姓名、年龄、性别等等。
假设有两个管理员同一时间段对某一个用户的资料进行修改,而且只改资料里面的某一项,其他项和进入修改页面时从数据库里读出来的一样。那么
1.A、B管理员都打开该用户的资料修改页面,这个时候,A、B管理员面前的修改页面是数据都是一样的。
2.A管理员改了“年龄”,B管理员“地址”。
3.A管理员保存更新,“年龄”这一项改变了,其他项和数据库里取出时一样。
4.B管理员也保存更新,“地址”这一项改变了,其他项和数据库里取出时一样。
这样的问题是,A管理员更新的“年龄”被B管理员的更新冲掉了,变成了原来的年龄。
这个问题在一些企业应用中还是经常会碰到的,特别是那些需要多人协同,负责采集一个对象的数据的情况。
我在GOOGLE里面也试过,修改自己的Gmail帐号信息,可是还是出现了数据被冲掉的现象。
我现在对这些问题都是采用JDBC直接进行单字段的setXX=?来解决,但是这样就不是OOD了。
也许对大家来说早就不是问题了,所以想向大家请教!
相关推荐
taiyangshenniao 2020-05-12
amberom 2020-04-25
点滴技术生活 2020-03-02
huolan 2020-02-02
suixinsuoyu 2020-01-06
tlsmile 2020-01-01
hithyc 2019-12-11
Mrwind 2019-11-03
woxmh 2019-11-02
踩风火轮的乌龟 2019-10-21
一片荷叶 2019-09-08
lizhiyong 2019-07-01
柯柯 2017-05-04
bluetears 2019-06-29
狗蛋的窝 2019-06-29
maxintcsdnblog 2019-06-28
Excalibur0 2011-12-22
xwb 2011-11-23
baohuanlove 2019-06-27