REPOSITORY API & DERIVED PROPERTIES EĞİTİMİ

Spring Data ile sorguyu metot adından türet

Repository hiyerarşisi, findBy türetilmiş sorgular, @Query, projeksiyon, Specification ve Testcontainers ile Spring Data JPA katmanını uygulamalı öğrenin.

Repository hiyerarşisi, findBy türetilmiş sorgular, @Query, projeksiyon, Specification ve Testcontainers ile Spring Data JPA katmanını uygulamalı öğrenin.

2 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Spring Data Repository API ve türetilmiş sorgular: findBy, @Query, projeksiyon, Specification ve test

Bu eğitim Spring Data Repository API'sini ve metot adından sorgu türetme mekanizmasını derinlemesine ele alır. CrudRepository ve JpaRepository hiyerarşisi, findBy/existsBy/countBy önekleri, And/Or/Between/In/OrderBy/TopN anahtar kelimeleri, iç içe özellik gezinme, Pageable ve Sort, @Query ile JPQL, arayüz ve DTO projeksiyonları, @EntityGraph ile N+1 çözümü, Specification ve Querydsl, auditing, @DataJpaTest ve Testcontainers ile test uygulanır. Üretilen SQL her adımda incelenir.

Süre ve Format

2 Gün. Her gün dört modül; katılımcılar Repository API ve Türetilmiş Sorgular → İleri Sorgular, Test ve REST Katmanı sırasıyla ilerler.

Seviye

Orta Seviye — Spring Data Repository API ve türetilmiş sorgular: findBy, @Query, projeksiyon, Specification ve test.

Öğrenme Metodu

Katılımcılar Spring Boot ve PostgreSQL ile bir sipariş modeli kurar; her sorgunun ürettiği SQL'i ve çalışma planını inceleyerek öğrenir.

Neden Bu Eğitim?

🔍Doğru Sorgu

Türetilmiş sorgu, @Query ve Specification arasında senaryoya göre seçim yaparsınız.

⚡N+1'i Yakala

Üretilen SQL'i okuyup performans sorunlarını önceden tespit edersiniz.

🧪Gerçek DB Testi

Repository katmanını Testcontainers ile gerçek veritabanında test edersiniz.

Anahtar Konular

Spring Data JPARepository APIderived queryfindBySpring Data SpecificationJPQL @QueryEntityGraph N+1DataJpaTestTestcontainersSpring Data projeksiyon
“İyi bir repository, SQL'i gizler ama maliyetini gizlemez.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Java Temelleri

Sınıf, arayüz, koleksiyon ve istisna yönetimi konularında temel Java bilgisi gerekir.

2
Nesne Yönelimli Kavramlar

Kalıtım, polimorfizm ve generics kavramlarına aşinalık beklenir.

3
Geliştirme Aracı

IntelliJ IDEA veya Eclipse ile proje açma / çalıştırma deneyimi faydalıdır.

4
Çalışma Ortamı

JDK 17+, Maven veya Gradle kurulu bir dizüstü bilgisayar hazır bulunmalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı CrudRepository, JpaRepository, sayfalama ve @Query ile veri erişimini kurar, Metot adından sorgu türetme kurallarını, anahtar kelimeleri ve sınırlarını uygular, Entity ilişkilerini, fetch stratejilerini, @Transactional ve N+1 sorununu ele alır ve Spring Boot, Spring Cloud ve OpenFeign ile ilk mikroservisleri geliştirir.
Modül 1
Spring Data Repository API
  • Repository hiyerarşisi: Repository, CrudRepository, PagingAndSortingRepository ve JpaRepository
  • Entity eşleme: @Entity, @Id, @GeneratedValue, @OneToMany, @ManyToOne ve fetch tipleri
  • Pageable, Sort, Page ve Slice ile sayfalama ve sıralama
  • @Query ile JPQL ve native sorgu, @Param ve @Modifying güncelleme sorguları
  • Projeksiyonlar: arayüz tabanlı, sınıf tabanlı (DTO) ve dinamik projeksiyon
  • Özel repository parçaları (fragment), Specification ve Query by Example ile dinamik sorgular
Modül 2
Türetilmiş Sorgu Özellikleri (Derived Properties)
  • Sorgu türetme sözdizimi: findBy, existsBy, countBy, deleteBy ve readBy önekleri
  • Anahtar kelimeler: And, Or, Between, LessThan, Like, In, IsNull, OrderBy, TopN, First
  • İç içe özellik gezinme: findByAddressCity ve alt çizgi (_) ile belirsizlik çözme
  • IgnoreCase, AllIgnoreCase, Distinct ve Streamable / Optional dönüş tipleri
  • Türetilmiş sorguların üretilen SQL'inin spring.jpa.show-sql ile incelenmesi ve N+1 kontrolü
  • Türetilmiş sorgu ile @Query ve Specification arasında ne zaman geçiş yapılacağı
Modül 3
JPA İlişkileri, İşlemler ve Performans
  • İlişki eşleme: @OneToMany mappedBy, @ManyToMany, cascade ve orphanRemoval
  • LAZY / EAGER yükleme, LazyInitializationException ve açık oturum (open-in-view) tartışması
  • N+1 sorgu problemi: @EntityGraph, JOIN FETCH ve toplu yükleme (@BatchSize)
  • @Transactional yayılım (propagation), izolasyon seviyeleri ve salt-okunur işlemler
  • Optimistic locking (@Version) ve pessimistic lock ile eşzamanlı güncelleme
  • Hibernate SQL günlüğü, istatistikleri ve p6spy ile üretilen sorguların incelenmesi
Modül 4
Spring Boot ile Mikroservis Geliştirme
  • Spring Initializr, starter bağımlılıkları ve katmanlı paket yapısı
  • @RestController, @Valid doğrulama, global @ControllerAdvice hata yönetimi
  • Spring Data JPA ile servis veri katmanı ve profil (profile) tabanlı yapılandırma
  • OpenFeign / WebClient ile servisler arası çağrı, zaman aşımı ve hata çevirisi
  • Actuator, Micrometer ve springdoc-openapi ile işletme ve dokümantasyon uç noktaları
  • Jib veya Buildpacks ile Dockerfile'sız konteyner imajı oluşturma
Günün hedefiKatılımcı JpaSpecificationExecutor, Auditing, Querydsl ve özel repository gerçeklemeleri, Repository testlerini bellek içi ve gerçek veritabanı ile çalıştırır, REST API katmanlarını veritabanına bağlar ve ortamlara dağıtım adımlarını uygular ve Kaynak odaklı URI, sayfalama, filtreleme ve sürümleme kurallarını uygular.
Modül 1
Specification, Auditing ve Özel Repository Uzantıları
  • JpaSpecificationExecutor ve Specification birleştirme (and / or) ile dinamik filtreleme
  • Querydsl veya Criteria API ile tür güvenli sorgu oluşturma
  • Auditing: @CreatedDate, @LastModifiedBy, AuditorAware ve Envers ile değişiklik geçmişi
  • Özel repository gerçeklemesi (Impl sınıfı) ve ortak taban repository (@NoRepositoryBean)
  • Soft delete (@SQLDelete, @Where) ve çok kiracılı veri izolasyonu yaklaşımları
  • Spring Data REST ile repository'nin otomatik REST uç noktasına çevrilmesi ve riskleri
Modül 2
Veri Katmanı Testi: @DataJpaTest ve Testcontainers
  • @DataJpaTest dilimi (slice), TestEntityManager ve otomatik geri alma
  • H2 ile gerçek veritabanı arasındaki dil farkları ve neden Testcontainers tercih edildiği
  • Testcontainers PostgreSQL, @ServiceConnection ve kapsayıcı yeniden kullanımı
  • Test verisi: @Sql betikleri, Flyway test migrasyonları ve builder tabanlı fikstürler
  • Türetilmiş sorgular için kenar durum testleri: null, büyük/küçük harf, sıralama ve sayfalama
  • Sorgu sayısı doğrulama (Hibernate Statistics) ile N+1 regresyonu yakalama
Modül 3
REST API Mimarisi ve Veritabanı Dağıtımı
  • Katmanlı mimari: controller, service, repository ve veri erişim sınırlarının ayrılması
  • ORM ile ilişkisel veritabanı erişimi, bağlantı havuzu (HikariCP/pg-pool) ve işlem (transaction) sınırları
  • Flyway veya Liquibase ile şema geçişi (migration) ve sürümlü veritabanı değişiklikleri
  • Dockerfile ve docker-compose ile API + PostgreSQL ortamını tek komutla ayağa kaldırma
  • Ortama göre yapılandırma: secret yönetimi, sağlık uç noktası (/health) ve readiness kontrolü
  • Dağıtım sonrası duman testi, veritabanı yedeği ve geri alma (rollback) planı
Modül 4
API Tasarım İlkeleri ve Kaynak Adlandırma
  • Çoğul isim tabanlı URI tasarımı: /orders/{id}/items yerleşimi ve fiil içeren yolların neden kaçınılması gerektiği
  • Sayfalama stratejileri: offset/limit, sayfa numarası ve cursor tabanlı (keyset) sayfalama
  • Filtreleme, sıralama ve alan seçimi için sorgu parametresi sözleşmeleri (?status=open&sort=-created)
  • Sürümleme yaklaşımları: URI (/v1), başlık ve media type tabanlı sürümleme ile geri uyumluluk kuralları
  • Toplu işlem (bulk), uzun süren işlemler için 202 Accepted ve durum sorgulama kaynağı
  • API değişiklik yönetimi: deprecation, Sunset başlığı ve kırıcı değişiklik tespiti

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Repository API

Spring Data Repository arayüzleriyle sayfalama ve özel sorgu içeren veri katmanı yazabilirsiniz.

🧩
Türetilmiş Sorgular

findBy kalıpları ve anahtar kelimelerle metot adından doğru sorgular türetebilirsiniz.

🛠️
JPA ve İşlemler

JPA ilişkilerini doğru modelleyip N+1 ve işlem sınırı sorunlarını çözebilirsiniz.

🔐
Spring Boot Servis

Spring Boot ile REST tabanlı bir mikroservis geliştirip diğer servislerle haberleştirebilirsiniz.

📈
Gelişmiş Repository

Specification ve auditing ile dinamik filtreli, izlenebilir repository katmanları kurabilirsiniz.

🧪
Veri Katmanı Testi

Repository katmanını @DataJpaTest ve Testcontainers ile gerçek veritabanına karşı test edebilirsiniz.

🚀
REST ve Veritabanı

Katmanlı bir REST API'yi veritabanıyla birlikte konteyner olarak dağıtabilirsiniz.

🔎
API Tasarımı

İsimlendirme, sayfalama ve sürümleme kurallarına uygun tutarlı bir API tasarlayabilirsiniz.

Kimler İçin Uygundur?

  • Spring Boot
  • veri katmanı geliştiren Java geliştiricileri ve JPA performansını anlamak isteyen backend mühendisleri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Spring Boot ile veri katmanı geliştiren Java geliştiricileri ve JPA performansını anlamak isteyen backend mühendisleri için uygundur.
JPA bilgisi gerekli mi?
Temel entity eşleme bilgisi faydalıdır; ilişkiler ve fetch stratejisi eğitimde ele alınır.
Hibernate dışında sağlayıcı kullanılır mı?
Hibernate kullanılır; Spring Data JDBC ile farklar kısaca karşılaştırılır.
Veritabanı nedir?
PostgreSQL, Testcontainers ve Docker ile hazırlanır.
Eğitim sonunda sertifika verilir mi?
Eğitimi tamamlayan katılımcılara Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir. Üçüncü taraf kurumların sınav ve sertifikalarıyla bir bağı yoktur.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Repository API & Derived Properties Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

API ve Mikroservis MimarisiAPI Development: Introduction to APIs Eğitimi
Yazılım Geliştirme Eğitimleri

API Development: Introduction to APIs Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

API nedir, HTTP istek ve yanıtı, REST ve JSON temelleri, curl ve Postman ile genel API çağırma ve basit istemci kodu: başlangıç seviyesi eğitim.

Detayları Gör →
API ve Mikroservis MimarisiAPI Development: REST & SOAP Web Services Eğitimi
Yazılım Geliştirme Eğitimleri

API Development: REST & SOAP Web Services Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

REST ve SOAP web servisleri: WSDL, XSD, JAX-WS, JAX-RS, WS-Security, OpenAPI ve SoapUI ile Postman testlerini uygulamalı öğreten eğitim.

Detayları Gör →
API ve Mikroservis MimarisiAPI Development: REST API Data Models Eğitimi
Yazılım Geliştirme Eğitimleri

API Development: REST API Data Models Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

JSON Schema, DTO, HAL ve JSON:API, OpenAPI şemaları, cursor sayfalama, sürümleme ve sözleşme testi ile REST API veri modeli tasarımı eğitimi.

Detayları Gör →
API ve Mikroservis MimarisiAPI Development: REST API Semantics Eğitimi
Yazılım Geliştirme Eğitimleri

API Development: REST API Semantics Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

GET, POST, PUT, PATCH, DELETE semantiği, idempotency, durum kodları, ETag, If-Match, content negotiation ve HATEOAS ile REST API semantiği eğitimi.

Detayları Gör →
API ve Mikroservis MimarisiAPI Development: Tools Eğitimi
Yazılım Geliştirme Eğitimleri

API Development: Tools Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

curl, Postman, SoapUI, Swagger ve OpenAPI araçları, JMeter ve Burp Suite ile API geliştirme, test ve güvenlik araç setini tanıtan eğitim.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn