Hibernate

Hibernate 5 – @OneToMany, @ManyToMany, @JoinTable

Hibernate Dersleri

Merhaba arkadaşlar derslerimize devam ediyoruz.

Bugün @OneToMany, [email protected]  ve @JoinTable kullanımlarını öğreneceğiz. Bu yazım kısa olacak çoğu terimi bir önceki derslerimizde açıkladığım için bir daha açıklama yapmayacağım.

 

@OneToMany nedir?

Adından da anlaşılacağı gibi bire çok ilişkidir. Peki nasıl oluyor bir örnek üzerinde anlatayım.

Bir kişinin birden fazla evi olabileceği gibi ve aynı evlerinde tek bir sahibi olabileceğini düşünebiliriz.

1.RESİM

Resimde de görüldüğü gibi aynı evin birden fazla sahibi olamaz.

İlk adres sınıfımıza bakalım.

Adress sınıfımızı @Entity tanımladık ve @Id’mizi oluşturduk.

İşçi sınıfımız ;

İşçi sınıfımızda List tanımlaması yaptık nedeni 1-n ilişki olduğu için n tarafını List şeklinde tutacağız. List yerine başka Collection’larda kullanabiliriz.

List nesnesinin set ve get metotlarını tanımlamayı unutmayalım.

Main metodumuzun bulunduğu sınıf ise;

 

Kodlarımıza baktığımızda aynı işçimize birden fazla adres verdik.

Uygulamamızı çalıştırdığımızda;

2.RESİM

 

Üç tane tablo oluştuğunu görmekteyiz. Employee_Adress tablosunda iki tablomuzun foreign keylerini tutmaktadır.

Oluşan yeni tablodaki sütun isimlerini @JoinTable dipnotunu kullanarak değiştireceğiz.

Employee sınıfımıza ufak değişikler yapalım.

 

Kodlarımıza baktığımızda @JoinTable dipnotu ile tablo adını ve sütun adlarını değiştirdik.

Burada iki tane joinColumns türü kullandık. Normal olarak joinColumns kullandıığımızda baskın sütunu adını değiştiriyoruz inverseJoinColumns ise bir diğer sütunun adını değiştiriyoruz.

Bu şekilde uygulamamızı çalıştırdığımızda;

3.RESİM

Sütunlarımızın adları değiştiğini görmekteyiz.

Bir diğer özelliğimiz ise @ManyToMany’dir

Bunun için şöyle bir örnek düşünebiliriz.

Bir işçi bir den fazla işte çalışabilir iken aynı işte birden fazla işçi çalışabilir.

Aynı örneğimize birde Jobs sınıfı ekliyoruz ve bunu hibernate.cfg.xml dosyamızda @Entity olduğunu belirtiyoruz.

 

 

Employee sınıfımızda baktığımızda

 

Burada List yapısını yeniden kullandık ve aynı şekilde oluşacak yeni tablomuzun adını ve sütun adlarını değiştirdik.

Uygulamamızı çalıştırdığımızda;

 

4.RESİM

 

Bu günlük bu kadar bir sonraki dersimizde görüşmek üzere kolay gelsin 🙂

 

Dumlupınar Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği 3.sınıf öğrencisiyim.
Bir Java aşığı olarak Java teknolojileri üzerinde kendimi geliştiriyorum.
Adana’lıyım