100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace

Java Hibernate Cheat Sheet

Java Hibernate Cheat Sheet

Details Hibernate entity mapping annotations, session CRUD operations, HQL and Criteria queries, fetch types, and entity lifecycle states.

3 PagesIntermediateApr 8, 2026

Entity Mapping

Map a Java class to a database table with JPA/Hibernate annotations.

java
@Entity@Table(name = "employees")public class Employee {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;    @Column(name = "full_name", nullable = false, length = 100)    private String name;    @ManyToOne(fetch = FetchType.LAZY)    @JoinColumn(name = "department_id")    private Department department;    @OneToMany(mappedBy = "employee", cascade = CascadeType.ALL, orphanRemoval = true)    private List<Address> addresses = new ArrayList<>();    // getters/setters}

Session & CRUD Operations

Basic Hibernate Session lifecycle and persistence operations.

java
SessionFactory sessionFactory = new Configuration()        .configure("hibernate.cfg.xml")        .buildSessionFactory();try (Session session = sessionFactory.openSession()) {    Transaction tx = session.beginTransaction();    Employee emp = new Employee();    emp.setName("Ada Lovelace");    session.persist(emp);          // INSERT    Employee found = session.get(Employee.class, 1L);  // SELECT by id    found.setName("Ada L.");       // dirty checking auto-updates on flush    session.remove(found);         // DELETE    tx.commit();}

HQL & Criteria API

Query entities with HQL and the type-safe Criteria API.

java
// HQL (object-oriented, entity/field names, not table/column names)List<Employee> results = session.createQuery(        "FROM Employee e WHERE e.department.name = :dept", Employee.class)        .setParameter("dept", "Engineering")        .list();// Criteria API (type-safe, JPA standard)CriteriaBuilder cb = session.getCriteriaBuilder();CriteriaQuery<Employee> cq = cb.createQuery(Employee.class);Root<Employee> root = cq.from(Employee.class);cq.select(root).where(cb.equal(root.get("name"), "Ada L."));List<Employee> list = session.createQuery(cq).getResultList();

Fetch Types & Cascade Options

Control how associated entities are loaded and propagated.

  • FetchType.LAZY- Load the association only when accessed; default for @OneToMany/@ManyToMany.
  • FetchType.EAGER- Load the association immediately with the parent; default for @ManyToOne/@OneToOne.
  • CascadeType.PERSIST- Saving the parent also saves associated child entities.
  • CascadeType.REMOVE- Deleting the parent also deletes associated children.
  • CascadeType.ALL- Applies PERSIST, MERGE, REMOVE, REFRESH, and DETACH to associations.
  • orphanRemoval- Automatically deletes child entities removed from the parent's collection.

Entity Lifecycle States

The states an entity moves through in the persistence context.

  • Transient- New object not associated with a Session and not saved in the DB.
  • Persistent (Managed)- Associated with an active Session; changes are tracked and auto-flushed.
  • Detached- Was persistent but the Session closed; changes are no longer tracked.
  • Removed- Scheduled for deletion in the current transaction.
  • Flush- Synchronizes in-memory persistence-context changes to the database, automatically before commit/queries or manually via session.flush().
  • Merge (Reattachment)- session.merge(detachedEntity) copies a detached entity's state onto a managed instance, reattaching it to the persistence context.
Pro Tip

Watch out for the N+1 select problem with lazy associations accessed in a loop - fix it with a JOIN FETCH in HQL/JPQL or @EntityGraph rather than switching everything to EAGER.

Was this cheat sheet helpful?

Explore Topics

#JavaHibernate#JavaHibernateCheatSheet#Programming#Intermediate#EntityMapping#SessionCRUDOperations#HQLCriteriaAPI#Fetch#Databases#CheatSheet#SkillVeris
Advertisement
Sri Hayavadhana Info-Tech

Professional Web Designing Services

  • Responsive Websites
  • E-commerce Solutions
  • SEO Friendly Design
  • Fast & Secure
  • Support & Maintenance
Get a Free Quote

Share this Cheat Sheet