Odak modu

Java Spring

One-To-One Tablo İlişkisi

Tablo ilişkilerini JPA (Java Persistence API) kullanarak nasıl yöneteceğimizi anlamak için önce "Products" ve "Code" adında iki entity (varlık) oluşturacağız. Bu entity'ler arasında birebir (OneToOne) bir ilişki kurarak veritabanındaki tablo ilişkilerini modelleyeceğiz.

İlk olarak, "Code" adında bir entity oluşturalım. Bu entity'nin veritabanındaki karşılığı aşağıdaki gibi olacaktır:

@Entity
@Table(name="codes")
public class Code{
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "code_id", columnDefinition = "serial")
  private int id;

  @Column(name = "code_group", nullable = false)
  private String group;

 @OneToOne(mappedBy = "code")
 private Product product;

  // Diğer özellikler ve getter/setter metotları

}

Burada, @Entity annotasyonu ile JPA'ya bu sınıfın bir entity olduğunu belirtiyoruz. @Id ve @GeneratedValue annotasyonları ile ID özelliğini belirleyip, otomatik artan bir strateji seçiyoruz.

Şimdi de "Product" adında bir entity oluşturalım. Bu entity'nin veritabanındaki karşılığı şu şekildedir:

@Entity
@Table(name="products")
public class Product {
 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 @Column(name = "product_id", columnDefinition = "serial")
 private int id;

  @Column(name = "product_name", nullable = false)
  private String name;

  @Column(name = "product_prc")
  private Double price;

  @Column(name = "product_stock", nullable = false)
  private int stock;

  @OneToOne
  @JoinColumn(name = "product_code_id", referencedColumnName = "code_id")
  private Code code;

  // Diğer özellikler ve getter/setter metotları
}

Bu entity, "Products" tablosunu temsil eder. @OneToOne ve @JoinColumn anotasyonları ile "Code" entity'si ile birebir ilişki kuruyoruz. Bu ilişki, "code_id" kolonunu "Code" tablosundaki "id" kolonu ile eşleştirir.

Bu şekilde, "Products" ve "Code" entity'leri arasında veritabanında birebir bir ilişki oluşturduk. Bu ilişkiyi kullanarak, her iki tablo arasında bilgi alışverişi yapabiliriz.

Background Pattern
Birlikte öğrenelim

Sektörde en çok aranan yazılım becerilerini kazan

Yapay zeka desteği, birebir mentörlük saatleri, canlı dersler ve senin için özel hazırlanmış içeriklerle eksiklerini tamamla, düzenli geri bildirimler al ve öğrenme sürecini en verimli hale getir.

Yunus Emre Kabakcı

Patika+ mezunu

Patika+ Fullstack Web Development Bootcamp mezunumuz Yunus Emre,

3 ay içinde Katar’dan aldığı teklif ile, global bir şirket olan Pavo Group’da işe başladı!


“İçerik zenginliği, mentor desteği, ileriye dönük bir network sağlaması ve dünyada en çok tercih edilen frameworkler üzerinden bir eğitim veriyor olması Patika+’ı tercih etmemin temel sebepleri oldu!“

Yorumlar

Yorum yapabilmek için derse kayıt olmalısın!