Hibernate, JPA ve Performans Tuzakları
Entity yaşam döngüsü, first-level cache, second-level cache, lazy vs eager loading, N+1 problemi, batch fetching, query tuning ve cache stratejileri. DTO mapping ve projection kullanımı.
JPA fetch join örneği
String q = "SELECT u FROM User u JOIN FETCH u.roles WHERE u.id = :id";
User u = em.createQuery(q, User.class).setParameter("id", id).getSingleResult();