Odak modu
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.
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+ mezunuPatika+ 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!“
Yorum yapabilmek için derse kayıt olmalısın!