Hibernate / Hibernate 7 Basics Interview Questions
What are entity states in Hibernate 7 and how do they transition?
Every entity instance in Hibernate exists in one of three states relative to a Session. Hibernate 7 enforces stricter rules on detached entities.
| State | Description | In session? | DB record? |
|---|---|---|---|
| Transient | Never associated with a Session | No | No |
| Persistent | Associated with open Session; changes tracked | Yes | Yes |
| Detached | Was persistent; Session closed | No | Yes |
// TRANSIENT Product p = new Product("Laptop", new BigDecimal("999")); // TRANSIENT -> PERSISTENT session.persist(p); // INSERT scheduled // Auto dirty checking: change field -> UPDATE at flush p.setPrice(new BigDecimal("899")); session.getTransaction().commit(); // flush: UPDATE sent // PERSISTENT -> DETACHED (session closes) // p is detached: changes NOT tracked // Hibernate 7: ONLY merge() re-integrates detached entities Product managed = session2.merge(p); // copies detached state managed.setPrice(new BigDecimal("799"));
More Related questions...