Odak modu
Önceki videoda "one to one" ilişkilerini, yani "birbirine karşılık gelen ilişkileri" inceledik. Bu ilişki türü, product tablosu ile code tablosu arasındaki ilişki gibi, her productin yalnızca bir code'a sahip olduğu ve her code'un yalnızca bir product ile ilişkili olduğu bir durumu ifade eder.
Şimdi ise "many to one" ve "one to many" ilişkilerine odaklanacağız. Bu ilişki türleri, bir supplier'ın birden çok product'a sahip olabileceği veya birden çok product'un bir supplier'a sahip olabileceği durumları işaret eder.
İlk olarak, Supplier adında yeni bir entity oluşturuyoruz:
@Entity
@Table(name = "suppliers")
public class Supplier {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "supplier_id", columnDefinition = "serial")
private Integer id;
@Column(name = "address", nullable = false)
private String address;
@Column(name = "company", nullable = false)
private String company;
@Column(name = "supplier_mail", unique = true)
private String mail;
@Column(name = "supplier_contact")
private String contact;
@OneToMany(mappedBy = "supplier")
private List<Product> products;
// Diğer özellikler ve getter/setter metotları
}
Bu entity, Product entity'si ile "many to one" ilişkisine sahiptir. Yani, her bir Product için bir Supplier bulunmaktadır. Bu ilişki, @OneToMany ve mappedBy annotation'ları ile belirtilmiştir. mappedBy ile, ilişkinin diğer tarafındaki alan adı belirtilir.
Şimdi, Product entity'sine bu ilişkiyi belirten bir alan ekliyoruz:
@Entity
@Table(name = "products")
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "product_id")
private Integer id;
@Column(name = "product_name", nullable = false)
private String productName;
@ManyToOne
@JoinColumn(name = "product_supplier_id", referencedColumnName = "supplier_id")
private Supplier supplier;
// Constructors, getters, setters, and other methods
}
Burada, @ManyToOne ile "many to one" ilişkisi belirtilir. Ayrıca, @JoinColumn annotation'ı ile, bu ilişkinin veritabanındaki karşılığı belirtilir. supplier_id sütunu, Supplier entity'si ile olan ilişkiyi ifade eder.
Son olarak, Supplier entity'si içindeki products alanını inceleyelim. Bu alan, Product entity'si ile olan ilişkiyi belirtir ve mappedBy annotation'ı ile Product entity'sindeki karşılık gelen alanı gösterir.
Bu şekilde, "many to one" ve "one to many" ilişkilerini kategorilendirip, entity'ler arasındaki ilişkileri tanımlayabiliriz. Bu ilişkiler, veritabanı tabloları arasındaki bağlantıları ifade eder ve Hibernate gibi ORM (Object-Relational Mapping) araçları, bu ilişkileri yönetmek için kullanılır.
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!