Hibernate : getCurrentSession()
This tutorial describes how getCurrentSession() method works in Hibernate.
Hibernate : getCurrentSession() :
getCurrentSession() obtains the current session. It opens session when you
call getCurrentSession() first time. It is closed when you end the transaction.
So if you are using getCurrentSession() so no need to worry about to close it.
When you commit transaction it automatically flushed. During your transaction
run, you can call getCurretnSession any time.
Returns:
current session.
Throws:
HibernateException - Indicates an issue locating a suitable current session.
Example : In this example we are using getCurrentSession() method. No need to close the session as when you call session.getTransaction().commit(); it automatically flushed your session.
package net.roseindia.main; import java.util.*; import net.roseindia.util.HibernateUtil; import org.hibernate.HibernateException; import org.hibernate.Session; public class HibernateGetCurrentSession { public static void main(String args[]) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); //Transaction began try { List list=session.createQuery("SELECT s.roll, s.name, s.course FROM Student s WHERE s.roll> 5").list(); session.getTransaction().commit(); //Transaction committed Iterator iterator= list.iterator(); System.out.println("RollNo\tName\tCourse"); while(iterator.hasNext()){ Object []obj=(Object[])iterator.next(); System.out.print(obj[0]); System.out.print("\t"+obj[1]); System.out.print("\t"+obj[2]); System.out.println(); } } catch (HibernateException e) { e.printStackTrace(); } } }
Output :
Hibernate: select student0_.roll_no as col_0_0_, student0_.name as col_1_0_, student0_.course as col_2_0_ from student student0_ where student0_.roll_no>5 RollNo Name Course 6 Mandy C 8 John Hibernate 9 Linda Hibernate 10 Glinto Hibernate