import org.hibernate.Session;
import org.hibernate.Transaction;
public class Main {
public static void main(String[] args) {
// Create
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
// Create Department
Department department = new Department("IT");
// Create Employees
Employee emp1 = new Employee("Alice", department);
Employee emp2 = new Employee("Bob", department);
session.persist(department);
session.persist(emp1);
session.persist(emp2);
transaction.commit();
session.close();
// Read
Session session = HibernateUtil.getSession();
Employee employee = session.get(Employee.class, 1L);
System.out.println("Employee Name: " + employee.getName());
System.out.println("Department: " + employee.getDepartment().getName());
session.close();
// Update
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
Employee employee = session.get(Employee.class, 1L);
if (employee != null) {
Department newDept = new Department("HR");
session.persist(newDept);
employee.setDepartment(newDept);
session.update(employee);
}
transaction.commit();
session.close();
// Delete
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
Employee employee = session.get(Employee.class, 1L);
if (employee != null) {
session.delete(employee);
}
transaction.commit();
session.close();
HibernateUtil.shutdown(); // Close sessionFactory
}
}