Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does persistence object means in Hibernate architecture?

Hibernate is a persistence framework which is used to persist data from Java environment to database.

I am so confused.. if we persist an object to the database, then why does Hibernate Architecture depicts the persistent object in the middle of Application and Hibernate in the picture below?

a busy cat
(source: viralpatel.net)

like image 598
Mmd Avatar asked Dec 24 '12 19:12

Mmd


People also ask

What do you mean by persistence of object?

Object persistence denotes the lifetime of an object. If an object has to exist beyond the lifetime of its parent process, object-oriented persistence must be implemented in data storage systems like databases.

What is meant by persistent object in Java?

In object technology, a persistent object is one that continues to exist after the program that created it has been unloaded. An object's class and current state must be saved for use in subsequent sessions.

What is use of persist method in Hibernate?

Hibernate persist is similar to save (with transaction) and it adds the entity object to the persistent context, so any further changes are tracked. If the object properties are changed before the transaction is committed or session is flushed, it will also be saved into database.

What do you mean by persistence of object in UML?

In files or databases, the object lifespan is longer than the duration of the process creating the object. This property by which an object continues to exist even after its creator ceases to exist is known as persistence.


Video Answer


6 Answers

I will make it more clearer. Persistent objects are instances of POJO classes that you create that represent rows in the table in the database. According to hibernate-doc an instance of POJO class representing table in database goes through 3 states of which persistent is one of them.

When a POJO instance is in session scope, it is said to be persistent i.e hibernate detects any changes made to that object and synchronizes it with database when we close or flush the session.

And about hibernate.properties and XML Mapping @Ken Chan is right. Go through hibernate-doc for more illustrations on objects in hibernate.

like image 171
DarkHorse Avatar answered Oct 04 '22 04:10

DarkHorse


Firstly you need to understand the three states of the Hibernate object i.e Transient, Persistent, Detached.

Transient state: An object is in transient state if it just has been instantiated using the new operator and there is no reference of it in the database i.e it does not represent any row in the database.

Persistent state: An object is in the persistent state if it has some reference in the database i.e it represent some row in the database and identifier value is assigned to it. If any changes are made to the object then hibernate will detect those changes and effects will be there in the database that is why the name Persistent. These changes are made when session is closed. A persistent object is in the session scope.

Detached state: An object that has been persistent and is no longer in the session scope. The hibernate will not detect any changes made to this object. It can be connected to the session again to make it persistent again.

like image 40
Parteek Avatar answered Oct 04 '22 04:10

Parteek


According to the figure , you configure hibernate.properties or some XML mapping to map a database table to a java object which is called persistent object .

Then in your application , you use the persistent object as a normal java object to manipulate its state . You can pass persistent object to hibernate .Hibernate will then generate and issue the necessary SQL to DB to synchronize the state of the persistent objectand its corresponding database record .Does it make sense ?

like image 33
Ken Chan Avatar answered Oct 04 '22 04:10

Ken Chan


Persistent Objects are generally those objects that exist in memory even beyond the duration of the process that creates it. These objects are then stored in the database.

like image 31
CodeShadow Avatar answered Oct 04 '22 03:10

CodeShadow


Persistent object is nothing but an instance of POJO class. And POJO class is nothing but a class that represents a table. And Hibernate always monitoring that persistent object. Whenever you manipulate that object or you made any changes in that object, Hibernate will do the same in that table (that one represent by the POJO class). that all handle by the hibernate. So in sort this is the one of the feature of hibernate framework.

like image 28
Dragon Avatar answered Oct 04 '22 03:10

Dragon


Persistant objects are the classes that in your program that has a representation in the database.

Example if you have a Car class with the properties NumberPlate, Fuel. The NHibernate configuration will map this to for example a table in the database that is named Car and has these columns corresponding to the Car class properties.

like image 39
Mattias Josefsson Avatar answered Oct 04 '22 04:10

Mattias Josefsson