Neil的備忘錄

          just do it
          posts - 66, comments - 8, trackbacks - 0, articles - 0

          Working with objects

          Posted on 2008-11-01 10:01 Neil's NoteBook 閱讀(59) 評論(0)  編輯  收藏

          Working With Objects

          Hibernate is a full object/relational mapping solution that not only shields the developer from the details of the underlying database management system, but also offers state management of objects. This is, contrary to the management of SQL statements in common JDBC/SQL persistence layers, a very natural object-oriented view of persistence in Java applications.

          In other words, Hibernate application developers should always think about the state of their objects, and not necessarily about the execution of SQL statements. This part is taken care of by Hibernate and is only relevant for the application developer when tuning the performance of the system.

          Hibernate object states

          Hibernate defines and supports the following object states:

          • Transient - an object is transient if it has just been instantiated using the new operator, and it is not associated with a Hibernate Session. It has no persistent representation in the database and no identifier value has been assigned. Transient instances will be destroyed by the garbage collector if the application doesn't hold a reference anymore. Use the Hibernate Session to make an object persistent (and let Hibernate take care of the SQL statements that need to be executed for this transition).

          • Persistent - a persistent instance has a representation in the database and an identifier value. It might just have been saved or loaded, however, it is by definition in the scope of a Session. Hibernate will detect any changes made to an object in persistent state and synchronize the state with the database when the unit of work completes. Developers don't execute manual UPDATE statements, or DELETE statements when an object should be made transient.

          • Detached - a detached instance is an object that has been persistent, but its Session has been closed. The reference to the object is still valid, of course, and the detached instance might even be modified in this state. A detached instance can be reattached to a new Session at a later point in time, making it (and all the modifications) persistent again. This feature enables a programming model for long running units of work that require user think-time. We call them application transactions, i.e. a unit of work from the point of view of the user.

          We'll now discuss the states and state transitions (and the Hibernate methods that trigger a transition) in more detail. 





          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 龙泉市| 保定市| 台州市| 安泽县| 商城县| 凤冈县| 交城县| 枣阳市| 伊通| 汪清县| 普兰店市| 三河市| 牡丹江市| 亳州市| 田东县| 丰原市| 昭苏县| 泾阳县| 黄平县| 保靖县| 吉林省| 固原市| 新晃| 自贡市| 金溪县| 普洱| 浠水县| 德令哈市| 大足县| 洪泽县| 文昌市| 保定市| 宜宾县| 巴塘县| 大足县| 沂源县| 汤原县| 黄平县| 贡觉县| 阆中市| 乐至县|