Hibernate / Hibernate 7 Basics Interview Questions
What are the new FindOptions in Jakarta Persistence 3.2 and Hibernate 7?
Jakarta Persistence 3.2 introduces FindOption, RefreshOption, and LockOption for fine-grained control over find/refresh/lock operations without separate methods for each combination. Hibernate 7 also adds session.findMultiple().
// Before JP 3.2: separate methods for different behaviours // After: varargs options on find() import jakarta.persistence.Timeouts; // Find with pessimistic lock and no-wait timeout: Book book = session.find( Book.class, isbn, LockModeType.PESSIMISTIC_WRITE, Timeouts.NO_WAIT // fail immediately if locked ); // Find bypassing second-level cache: Book book2 = session.find( Book.class, isbn, CacheRetrieveMode.BYPASS ); // session.findMultiple(): batch load multiple entities List<Book> books = session.findMultiple( Book.class, List.of(isbn1, isbn2, isbn3) ); // Loads all 3 in a single SELECT ... WHERE id IN (?,?,?) // RefreshOption: session.refresh(managedBook, LockModeType.PESSIMISTIC_READ); // LockOption: session.lock(managedBook, LockModeType.PESSIMISTIC_WRITE, Timeouts.of(5, TimeUnit.SECONDS));
More Related questions...