Hibernate Dersleri – Çoka Çok İlişki (Many To Many Annotation)

Hibernate

Hibernate Dersleri‘ne devam ediyoruz.

Bu yazıda veritabanı ilişkilerinden çoka çok ilişkiyi inceleyeğiz. Çoka çok ilişkinin Hibernate ile olan yapısı için bir senaryo gerçekleştireceğiz. Bu senaryoda yazar ve kitaplar bulunmaktadır.

@Entity  
public class Yazar  
{  
  private Long yazarId;  
  private String yazarAdi;  
      
  @Id  
  @GeneratedValue(strategy=GenerationType.AUTO)  
  public Long getYazarId()  
    {  
        return yazarId;  
    }  
    public void setYazarId(Long yazarId)  
    {  
        this.yazarId = yazarId;  
    }  
      
    @Column(name="yazar_adi")  
    public String getYazarAdi()  
    {  
        return yazarAdi;  
    }  
    public void setYazarAdi(String yazarAdi)  
    {  
        this.yazarAdi = yazarAdi;  
    }  
}

Yazar persist sınıfımızı oluşturduk. Bu sınfın çoka çok ilişkide olucağı kitap sınıfımızıda yazalım.

@Entity  
public class Kitap  
{  
  private Long kitapId;  
  private String kitapAdi;  
  private Set<Yazar> yazarListesi;  
    
  @Id  
  @GeneratedValue(strategy=GenerationType.AUTO)  
  public Long getKitapId()  
    {  
        return kitapId;  
    }  
    public void setKitapId(Long kitapId)  
    {  
        this.kitapId = kitapId;  
    }  
      
    @Column(name="kitap_adi")  
    public String getKitapAdi()  
    {  
        return kitapAdi;  
    }  
    public void setKitapAdi(String kitapAdi)  
    {  
        this.kitapAdi = kitapAdi;  
    }  
    @ManyToMany(cascade=CascadeType.ALL)  
    @JoinTable(name="yazar_kitap", joinColumns=@JoinColumn(name="kitap_id"), 
                                   inverseJoinColumns=@JoinColumn(name="yazar_id"))  
    public Set<Yazar> getYazarListesi()  
    {  
        return yazarListesi;  
    }  
    public void setYazarListesi(Set<Yazar> yazarListesi)  
    {  
        this.yazarListesi = yazarListesi;  
    }  
}

Çoka çok ilişkiyi kitapların birden fazla yazarı olacağı gibi yazarlarından birden fazla kitabı olabilir bu @ManyToMany ilişkisinin persist sınfını  bir liste olarak kitap sınıfında tanımlıyoruz. Bu yapı ile birlikte JoinTable yaparak diğer bir tabloda kitap_id ve yazar_id  bilgilerinin tutulduğu yazar_kitap tablosunda tutulmaktadır.

Önceki : Bire Çok İlişki (One To Many) Hibernate Dersleri Sonraki: Cascade Yapısı

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Burak KUTBAY 2010 - 2019
%d blogcu bunu beğendi: