Quick brush-up. JPA = the spec; Hibernate = the implementation.

Drill cards

JPA vs Hibernate?::JPA = specification; Hibernate = an implementation of it.
N+1 problem + fix?::One query for the list, then one per row for its association. Fix with JOIN FETCH / @EntityGraph / batch fetching.
Lazy vs eager?::Lazy loads on access (preferred); eager loads immediately (over-fetch risk).
Entity states?::Transient → Persistent(managed) → Detached → Removed.
L1 vs L2 cache?::L1 = session-scoped (always on); L2 = SessionFactory-scoped, shared, opt-in.