📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Important points
First-level cache retrieval example
package net.javaguides.hibernate.tutorial;
import org.hibernate.Session;
import org.hibernate.Transaction;
import net.javaguides.hibernate.tutorial.config.HibernateJavaConfig;
import net.javaguides.hibernate.tutorial.entity.Student;
public class FirstLevelCacheDemo {
public static void main(String[] args) {
Transaction transaction = null;
try (Session session = HibernateJavaConfig.getSessionfactory().openSession()) {
// start the transaction
transaction = session.beginTransaction();
// get the student entity using id
Student student1 = session.load(Student.class, new Long(1));
System.out.println(student1.getFirstName());
System.out.println(student1.getLastName());
System.out.println(student1.getEmail());
// load student entity by id
Student student2 = session.load(Student.class, new Long(1));
System.out.println(student2.getFirstName());
System.out.println(student2.getLastName());
System.out.println(student2.getEmail());
// commit transaction
transaction.commit();
} catch (Exception e) {
if (transaction != null) {
transaction.rollback();
}
}
}
}
Hibernate: select student0_.id as id1_0_0_, student0_.email as email2_0_0_, student0_.first_name as first_na3_0_0_, student0_.last_name as last_nam4_0_0_ from student student0_ where student0_.id=?
Prabhas
Fadatare
prabhas@gmail.com
Prabhas
Fadatare
prabhas@gmail.com
First-level cache retrieval example with a new session
package net.javaguides.hibernate.tutorial;
import java.io.Serializable;
import org.hibernate.Session;
import org.hibernate.Transaction;
import net.javaguides.hibernate.tutorial.config.HibernateJavaConfig;
import net.javaguides.hibernate.tutorial.entity.Student;
public class FirstLevelCacheDemo1 {
public static void main(String[] args) {
Transaction transaction = null;
try (Session session = HibernateJavaConfig.getSessionfactory().openSession(); Session session1 = HibernateJavaConfig.getSessionfactory().openSession()) {
// start the transaction
transaction = session.beginTransaction();
// get the student entity using id
Student student1 = session.load(Student.class, new Long(1));
System.out.println(student1.getFirstName());
System.out.println(student1.getLastName());
System.out.println(student1.getEmail());
// load student entity by id
Student student2 = session.load(Student.class, new Long(1));
System.out.println(student2.getFirstName());
System.out.println(student2.getLastName());
System.out.println(student2.getEmail());
// load student entity by id
Student student3 = session1.load(Student.class, new Long(1));
System.out.println(student3.getFirstName());
System.out.println(student3.getLastName());
System.out.println(student3.getEmail());
// commit transaction
transaction.commit();
} catch (Exception e) {
if (transaction != null) {
transaction.rollback();
}
}
}
}
Hibernate: select student0_.id as id1_0_0_, student0_.email as email2_0_0_, student0_.first_name as first_na3_0_0_, student0_.last_name as last_nam4_0_0_ from student student0_ where student0_.id=?
Prabhas
Fadatare
prabhas@gmail.com
Prabhas
Fadatare
prabhas@gmail.com
Hibernate: select student0_.id as id1_0_0_, student0_.email as email2_0_0_, student0_.first_name as first_na3_0_0_, student0_.last_name as last_nam4_0_0_ from student student0_ where student0_.id=?
Prabhas
Fadatare
prabhas@gmail.com
Removing cache objects from first-level cache example
- Session.evict()
- Session.clear()
package net.javaguides.hibernate.tutorial;
import org.hibernate.Session;
import org.hibernate.Transaction;
import net.javaguides.hibernate.tutorial.config.HibernateJavaConfig;
import net.javaguides.hibernate.tutorial.entity.Student;
public class RemoveFirstCacheDemo {
public static void main(String[] args) {
Transaction transaction = null;
try (Session session = HibernateJavaConfig.getSessionfactory().openSession()) {
// start the transaction
transaction = session.beginTransaction();
// get the student entity using id
Student student1 = session.load(Student.class, new Long(1));
System.out.println(student1.getFirstName());
System.out.println(student1.getLastName());
System.out.println(student1.getEmail());
// load student entity by id
Student student2 = session.load(Student.class, new Long(1));
System.out.println(student2.getFirstName());
System.out.println(student2.getLastName());
System.out.println(student2.getEmail());
//session.evict(student2);
session.clear();
// load student entity by id
Student student3 = session.load(Student.class, new Long(1));
System.out.println(student3.getFirstName());
System.out.println(student3.getLastName());
System.out.println(student3.getEmail());
// commit transaction
transaction.commit();
} catch (Exception e) {
if (transaction != null) {
transaction.rollback();
}
}
}
}
best explanation, thanks a lot
ReplyDelete