
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Difference Between Save and Persist in Hibernate
Save() and persist() both methods are used for saving object in the database.
As per docs −
Save() − Persist the given transient instance, first assigning a generated identifier. (Or using the current value of the identifier property if the assigned generator is used.) This operation cascades to associated instances if the association is mapped with cascade="save-update".
As per docs −
persist() − Make a transient instance persistent. This operation cascades to associated instances if the association is mapped with cascade="persist". The semantics of this method are defined by JSR-220.
Sr. No. |
Key |
save() |
persist() |
---|---|---|---|
1 |
Basic |
It stores object in database |
It also stores object in database |
2 |
Return Type |
It return generated id and return type is serializable |
It does not return anything. Its void return type. |
3 |
Transaction Boundaries |
It can save object within boundaries and outside boundaries |
It can only save object within the transaction boundaries |
4. |
Detached Object |
It will create a new row in the table for detached object |
It will throw persistence exception for detached object |
5. |
Supported by |
It is only supported by Hibernate |
It is also supported by JPA |
Example of Save in Hibernate
@Entity public class User { @Id Integer id; String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import com.journaldev.hibernate.util.HibernateUtil; public class SaveExample { public static void main(String[] args) { //get session factory to start transcation SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); User user = new User(); user.setId(1) user.setName("ABCD") session.save(user); //Close resources tx.commit(); sessionFactory.close(); } }
Example of Persist in Hibernate
@Entity public class User { @Id Integer id; String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import com.journaldev.hibernate.util.HibernateUtil; public class PersistExample { public static void main(String[] args) { //get session factory to start transcation SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); User user = new User(); user.setId(1) user.setName("ABCD") session.persist(user); //Close resources tx.commit(); sessionFactory.close(); } }