JPA ve Hibernate 3D logosu yanında veritabanı silindiri ve entity eşleme bloğu bembeyaz arka planda premium kompozisyon

JPA & Hibernate Eğitimi, nesne dünyası ile ilişkisel veritabanı arasındaki köprüyü doğru kurmayı öğretir. Katılımcılar, veri erişim katmanını performansı düşünerek tasarlama yetkinliği edinir.

Eşleme, sorgulama ve önbellekleme konuları bir arada ele alınarak verimli ve öngörülebilir veri erişimi sağlama pratiği oturur. Konular, güncel ORM dokümantasyonu temel alınarak işlenir.

JPA & Hibernate eğitimini şirketinize özel planlayalım. 0212 951 0608 · Teklif isteyin

Katılımcı Profili

Bu eğitim, JPA ve Hibernate'i "yavaş ORM" söylentisinden kurtarıp doğru kullanmak isteyen rollere yöneliktir:

  • Java Geliştiriciler: JPA spec ve Hibernate implementation kullanan mühendisler
  • Backend Mühendisleri: N+1 ve lazy loading tuzaklarına çözüm arayan ekipler
  • Spring Boot Geliştiriciler: Spring Data JPA ile veri katmanı yazan roller
  • Veritabanı Geliştiricileri: ORM ile native SQL arasında karar veren ekipler
  • Solution Architect'ler: ORM ve veri erişim stratejisi belirleyen roller

Ön Gereklilikler

Bu eğitime katılım için aşağıdaki ön bilgiler önerilir:

  • Java ile temel uygulama geliştirme deneyimi
  • SQL ile temel sorgu yazma (SELECT, JOIN, WHERE) bilgisi
  • İlişkisel veri modeli ve normalization kavramlarına aşinalık
  • Spring veya Spring Boot ile temel deneyim (tercihen)
  • Maven veya Gradle build aracı kullanım bilgisi

Süresi ve Tarihi

Süre: 3 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, ekibinizin uygunluğuna göre birlikte planlanır.

Kazanımlar

Bu programın sonunda katılımcı, JPA ve Hibernate'i "yavaş ORM" söylentisinden kurtarıp doğru kullanır:

  • JPA spec ile Hibernate implementation arasındaki farkı bilir
  • Persistence Context ve Session lifecycle'ı bilinçle yönetir
  • Lazy ve Eager fetching; N+1 problemini @EntityGraph ile keser
  • Caching katmanlarını (1st level, 2nd level, query cache) doğru senaryoda kullanır
  • Optimistic ve pessimistic locking arasında işlemsel risk ile seçim yapar
  • HQL, JPQL, Criteria API ve native query'i karşılaştırarak yazar
  • Hibernate Envers ile audit log kurar; flush mode'ları bilir

JPA & Hibernate Eğitimi Konuları

1. JPA ve Hibernate - JSR Standart

  • JPA spec ve Hibernate implementasyon
  • Jakarta EE/Persistence ad geçişi
  • EclipseLink alternatifi ve karşılaştırma
  • ORM avantajları ve trade-off

2. EntityManager ve Persistence Context

  • EntityManager rolü ve yaşam süresi
  • Persistence Context: first-level cache
  • persistence.xml yapısı
  • Application-managed vs container-managed EM

3. Entity Lifecycle - Transient, Managed, Detached, Removed

  • New (transient) state
  • Managed state ve dirty checking
  • Detached ve merge stratejisi
  • Removed state ve flush davranışı

4. Mapping - @Entity, @Table, @Column

  • @Entity ve @Table tanımı
  • @Id, @GeneratedValue stratejileri
  • @Column nullable, unique, length
  • @Enumerated, @Temporal, @Lob
  • Embedded ve @Embeddable

5. İlişkiler - @OneToMany, @ManyToMany

  • @OneToOne, @OneToMany, @ManyToOne, @ManyToMany
  • Unidirectional vs bidirectional ilişki
  • Owning side ve mappedBy
  • Join table customization
  • FetchType: EAGER vs LAZY

6. Cascade ve Orphan Removal

  • CascadeType: PERSIST, MERGE, REMOVE, REFRESH, DETACH, ALL
  • orphanRemoval davranışı
  • Cascade vs Foreign Key DDL
  • Cascading silme riskleri

7. Inheritance Strategy

  • SINGLE_TABLE: tek tablo, discriminator
  • JOINED: alt tablo, foreign key
  • TABLE_PER_CLASS: ayrı tablo
  • MappedSuperclass alternatifi
  • Performans ve trade-off analizi

8. JPQL ve Criteria API

  • JPQL: object-oriented query language
  • Named query ve dynamic query
  • TypedQuery ve parameter binding
  • Criteria API: tip güvenli, programmatic
  • JPQL ve SQL farkı

9. Native Query ve SqlResultSetMapping

  • createNativeQuery ile raw SQL
  • @SqlResultSetMapping ile mapping
  • Stored procedure çağrısı
  • Vendor-specific query risk

10. Fetch Strategy - Eager vs Lazy

  • LAZY default to-many, EAGER default to-one
  • LazyInitializationException yönetimi
  • Fetch join ile eager loading
  • @BatchSize ile batch fetching
  • EntityGraph dynamic fetch

11. N+1 Problem ve Çözümleri

  • N+1 problemin tanımı ve sebebi
  • JOIN FETCH ile çözüm
  • @EntityGraph annotation
  • Batch fetching ve subquery
  • Hibernate Statistics ile tespit

12. Caching - First ve Second Level

  • First-level cache (PC) otomatik
  • Second-level cache: shared, opt-in
  • EhCache, Hazelcast, Infinispan provider
  • Query cache ve maliyet
  • Cache eviction stratejileri

13. Transaction ve Isolation Level

  • @Transactional Spring ile
  • Propagation: REQUIRED, REQUIRES_NEW, NESTED
  • Isolation: READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
  • Rollback rules ve checked exception
  • Transactional ile @Async tuzakları

14. Optimistic ve Pessimistic Locking

  • @Version ile optimistic lock
  • OptimisticLockException yönetimi
  • Pessimistic lock: PESSIMISTIC_READ, WRITE, FORCE_INCREMENT
  • LockTimeoutException ve fallback

15. Auditing - @CreatedDate, @ModifiedDate

  • Spring Data JPA Auditing
  • @CreatedBy, @LastModifiedBy
  • AuditorAware ile kullanıcı tespiti
  • Envers ile entity history

16. Spring Data JPA Repository

  • CrudRepository, JpaRepository hiyerarşisi
  • Query methods ve derived query
  • @Query ile özel JPQL
  • Projection: interface ve DTO
  • Pagination ve Sort

17. Specifications ve QueryDSL

  • JpaSpecificationExecutor ile dynamic query
  • Specification compose: and, or, not
  • QueryDSL ile tip güvenli sorgu
  • Predicate ve dynamic filter

18. Performance Tuning - Hibernate Statistics

  • Hibernate Statistics aktif etme
  • SQL log: show_sql vs structured
  • Open-Session-in-View tuzağı
  • Hibernate Envers performans etkisi
  • Connection pool tuning (HikariCP)

JPA & HIBERNATE EĞİTİMİ ile İlgili
Sıkça Sorulan Sorular ve Cevapları


JPA & Hibernate eğitimini kurumumuza özel planlayabilir miyiz?

Evet. JPA & Hibernate eğitimini tamamen kurumunuza özel planlıyoruz; konu kapsamı ve takvim, hedeflerinize ve katılımcı kadronuzun uygunluğuna göre birlikte şekillenir.

JPA & Hibernate eğitimini hangi şehirlerde veriyorsunuz?

JPA & Hibernate eğitimini kurumunuzun bulunduğu ilde yerinde veriyoruz; İstanbul, Ankara ve İzmir başta olmak üzere Türkiye'nin her iline gelmekteyiz. İsteyen firmalara eğitim canlı online olarak da sunulur.

JPA & Hibernate eğitimini online veriyor musunuz?

Evet, JPA & Hibernate eğitimini canlı online olarak da veriyoruz; birlikte uygulamalı oturumlarla Türkiye'nin neresinde olursanız olun katılabilirsiniz. Program kurumunuzun ihtiyacına göre belirlenir.

JPA & Hibernate eğitimi çalışanlarımızın seviyesine göre uyarlanıyor mu?

Evet. JPA & Hibernate eğitiminin başında katılımcıların seviyesi değerlendirilir ve içerik buna göre ayarlanır; sıfırdan başlanabileceği gibi ileri konulara da odaklanılabilir.

JPA & Hibernate eğitimi projemiz üzerinden ilerleyebilir mi?

Eğitim, kendi web projeniz veya mimari senaryonuz üzerinden ilerleyebilir. Teklif öncesinde projenizi bize iletmeniz ya da tarif etmeniz durumunda eğitimi gerçek uygulamanıza göre kurgularız.

JPA & Hibernate eğitmenleriniz hakkında bilgi alabilir miyiz?

Eğitmenlerimiz web ve uygulama geliştirme alanında deneyimli, JPA & Hibernate'u gerçek projelerde kullanan yazılımcılardır. İhtiyacınıza ve hedefinize en uygun eğitmeni sizinle eşleştiriyoruz.

Katılımcılarımıza sertifika veriliyor mu?

Evet. Eğitim sonunda katılımcılarımıza katılım sertifikası veriyoruz; sertifikada eğitimin kapsamı ve katılımcı bilgileri yer alır, kurumunuzun tercihine göre dijital ya da basılı olarak hazırlanır.

JPA & Hibernate eğitiminin fiyatı ne kadar?

Sabit bir JPA & Hibernate eğitimi ücreti yoktur; fiyat, katılımcı sayısı, kapsam ve süreye göre belirlenir. İhtiyacınızı dinleyip kurumunuza özel bir teklif sunarız.

JPA & Hibernate programını ekibinize uygun içerikle planlayalım.
0212 951 0608 · Kurumsal teklif