学JAVA已经有五年了,当然,我现在已经不是一个职业程序员,但一直还是把JAVA当作自己的一项技能,时时用之。但是关于面向对象设计上有个问题一直弄不懂,特别是用HIBERNATE来做数据库操作时。所以向大家讨教。
问题是这样的:
比如一个User类,记载了一个用户的信息,如姓名、年龄、性别等等。
假设有两个管理员同一时间段对某一个用户的资料进行修改,而且只改资料里面的某一项,其他项和进入修改页面时从数据库里读出来的一样。那么
1.A、B管理员都打开该用户的资料修改页面,这个时候,A、B管理员面前的修改页面是数据都是一样的。
2.A管理员改了“年龄”,B管理员“地址”。
3.A管理员保存更新,“年龄”这一项改变了,其他项和数据库里取出时一样。
4.B管理员也保存更新,“地址”这一项改变了,其他项和数据库里取出时一样。
这样的问题是,A管理员更新的“年龄”被B管理员的更新冲掉了,变成了原来的年龄。
这个问题在一些企业应用中还是经常会碰到的,特别是那些需要多人协同,负责采集一个对象的数据的情况。
我在GOOGLE里面也试过,修改自己的Gmail帐号信息,可是还是出现了数据被冲掉的现象。
我现在对这些问题都是采用JDBC直接进行单字段的set XX = ?来解决,但是这样就不是OOD了。
也许对大家来说早就不是问题了,所以想向大家请教!
分享到:
相关推荐
本书使用最常见的技术和方法,通过一个贯穿全书的案例分析,对面向对象的软件开发过程和使用面向对象技术的编程过程进行了透彻的讨论。首先阐述了面向对象软件项目的基本概念,然后基于广泛使用的方法,介绍了使用...
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...
《妙解Hibernate 3.x:叩响面向对象思想之门》是一本深入解析Hibernate框架的专著,旨在帮助读者理解并掌握面向对象编程思想在实际开发中的应用,尤其是在使用Hibernate时如何有效地进行数据持久化。这本书是面向...
由于提供的文件内容不包含...由于无法直接从给定文件的重复链接中提取具体内容,以上内容为对面向对象分析与设计的一般性介绍,以确保满足您所要求的详细知识点说明。希望这些内容有助于增进您对面向对象方法的理解。
面向对象软件工程是一种现代的软件开发方法,它基于对象的概念,强调模块化、可重用性和灵活性。本教程“实用面向对象软件工程教程”旨在深入探讨面向对象分析(OOA)和面向对象设计(OOD)的关键原则,帮助开发者...
面向过程、面向对象、面向组件、面向服务软件架构的分析与比较 软件开发历程与架构演进 软件开发从汇编语言、过程式语言、面向对象、面向组件发展到面向服务,这一进程不仅反映了编程技术的不断进步,更是软件工程...
尽管JavaScript不是传统意义上的面向对象语言,但它提供了一些独特的特性,使其能够支持面向对象编程。 - **原型链**:JavaScript使用原型链来实现继承。每个对象都有一个内部属性[[Prototype]],指向其原型对象。...
Matlab面向对象编程是一种在MATLAB环境下通过面向对象的方法来组织和构造程序代码的技术。面向对象编程(OOP)的基本特征包括抽象、封装、继承和多态。以下是根据给定的文件信息,对这些知识点的详细解释: 1. 抽象:...
C++是一种强大的、通用的编程语言,以其支持面向对象编程(OOP)而闻名。面向对象编程是一种设计和实现软件的方式,它强调将现实世界的问题和解决方案映射到计算机程序中的对象。本资料包“C++面向对象程序设计 经典...
codesys面向对象的方法属性动作接口 codesys面向对象的方法属性动作接口是指在codesys中实现面向对象编程的方法、属性和动作接口。这种接口允许用户在codesys中实现面向对象编程,使用继承、多态和封装等面向对象...
用 C 语言实现面向对象编程,我曾经在嵌入式控制系统工作过,苦于嵌入式系统编程一直是 C 语言,而没法用 C++或其他高级 语言的面向对象方法编程。经过研究生的学习和探索,...本人将其总结如下,希望对大家有帮助。
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...
《UML面向对象建模与设计答案》是一个包含详尽解答的资源,旨在帮助学习者理解和掌握UML(Unified Modeling Language)在面向对象设计中的应用。面向对象建模是软件开发过程中至关重要的一环,它通过可视化的方式...
在对象的创建过程中,可以对对象的数据进行初始化。 LabVIEW 面向对象编程技术的优点在于可以提高程序的可维护性和可扩展性。通过类的定义和实例化,可以实现数据的封装和继承,提高程序的可维护性和可扩展性。 ...
本书以面向对象的软件工程思想为主线,细致深入地讲解了C#语言面向对象程序设计的方法和技巧,内容涵盖面向对象的基本概念、基于接口的设计、泛型程序设计方法、Windows和Web应用开发,以及数据库访问技术。...
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性。《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念...