Hibernate : Stateless Session
In this section we will show how stateless session works.
Hibernate Stateless Session :
Stateless Session :It has no persistence context associated with it. It doesn't
provide many of the higher level life- cycle semantics.
- A stateless session does not implement -
- a first-level cache.
- any second-level or query cache.
- transactional write-behind or automatic dirty checking.
- cascade to associated instances.
Stateless session ignores collections. It is a low-level abstraction that is closer to the JDBC.
Example :
In this example we are updating student record of roll number 5 by using stateless session.
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.StatelessSession; import org.hibernate.Transaction; public class HibernateStatelessSession { public static void main(String args[]) { StatelessSession session = HibernateUtil.getSessionFactory().openStatelessSession(); Transaction transaction = session.beginTransaction(); int roll = 5; Student student = (Student) session.get(Student.class, roll); try { student.setName("Jolly"); student.setCourse("Hibernate"); session.update(student); transaction.commit(); 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: update student set course=?, name=? where roll_no=? Update Successfully