Hibernate : Refreshing Object
In this tutorial we will discuss about session.refresh() method.
Hibernate Refresh() method :
refresh() method provide the way to re-read the state of the given instance.
It is useful to run this method for the session of long term.
you can say for a single session you can update the database table data and
fetch the updated data.
Some place where to use refresh() method -
- where a database trigger alters the object state upon insert or update
- after executing direct SQL (eg. a mass update) in the same session
- after inserting a Blob or Clob
Syntax:-
void refresh(Object object) throws HibernateException
void refresh(Object object,LockMode lockMode) throws HibernateException
void refresh(Object object,LockOptions lockOptions) throws HibernateException
Example :
In this example we are refreshing record of student table by using session.refresh().
package net.roseindia.main; import net.roseindia.table.Student; import net.roseindia.util.HibernateUtil; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; public class HibernateSessionRefresh{ public static void main(String args[]) { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction transaction = session.beginTransaction(); int roll = 5; Student student = (Student) session.load(Student.class, roll); try { student.setName("Johny"); student.setCourse("Hibernate"); session.saveOrUpdate(student); transaction.commit(); session.refresh(student); System.out.println("Update Successfully"); session.close(); } catch (HibernateException e) { e.printStackTrace(); } } }
Output :
Hibernate: select student0_.roll_no as roll1_0_0_, student0_.course as course0_0_, student0_.name as name0_0_ from student student0_ where student0_.roll_no=? Hibernate: select student0_.roll_no as roll1_0_0_, student0_.course as course0_0_, student0_.name as name0_0_ from student student0_ where student0_.roll_no=? Update Successfully