Object States in Hibernate 5

 A java object within a hibernate application can be in one of the three states:

  1. New/transient

  2. Attached/persistent

  3. Detached

 

Important points about object states in Hibernate

  • When an object is created, it will be in the new/transient state.

    • Hibernate will not save any updates to the transient objects.

  • When you do a get, save, update or delete from within a session transaction, the object moves to the persistent state.

    • Now the object will be attached to the session and any changes will be tracked by hibernate.

  • Finally when you do a session.commit(), object moves to the detached state, doing the following:

    • Hibernate will save the latest version of the object.

    • The object is detached from the session.

  • Hibernate will not save any updates to the detached objects, until they are attached again to a session.

 

Example

Make below modifications over the lab excercise done @ http://javajee.com/lab-your-first-hibernate-43-program

Make below modifications in the test class alone:

Initially we created an object and gave values as:

User u = new User();

u.setId(1);

u.setName("Heartin");

Later we save it within a session as:

session.beginTransaction();

session.save(u);

session.getTransaction().commit();

 

Modify the object after session.save as:

session.beginTransaction();

session.save(u);

u.setName("Heartin.Jacob");

session.getTransaction().commit();

If you execute the same program now, you can see that, the value of the name field is updated to Heartin.Jacob, even though there is no explicit save command.

Tags: 

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)