Focus mode
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.
Programs to Accelerate Your Progress in a Software Career
Join our 4-8 month intensive Patika+ bootcamps, start with the fundamentals and gain comprehensive knowledge to kickstart your software career!
You need to enroll in the course to be able to comment!