Hibernate Dersleri – Embeddable ve Embedded Anotasyonları Kullanımı

Hibernate

Hibernate Dersleri‘ne devam ediyoruz.

Önceki derslerimizde veritabanı ilişkilerinde kullandığımız One To One, One To Many ve Many To One yöntemlerinde tablolar arasında bir ara tablo oluşturulmakta idi.  @Embeddable ve @Embedded anotasyonları kullanarak ara tablo oluşturmaya gerek kalmadan “gömmek” istediğimiz persist sınıfımıza eklememiz yeterli olmaktadır. Java nesnesi tarafından farklı sınıflar ile yönettiğimiz alanları, veritabanı olarak aynı tabloda görmemizi sağlamaktadır.

Yukarıda açıklamaya çalıştığım durumu örneklendirelim. Önceki örneklerde de yaptığım gibi Üye örneğinden gideceğim. Üye sınıfımız var ve bu üyelerin adresleri bulunduğu bir sınıf yapalım.

Üye sınıfını oluşturalım.

@Entity
public class Uye implements Serializable {

    private int uyeId;
    private String uyeAdi;
    private Adres adres;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "uye_id")
    public int getUyeId() {
        return uyeId;
    }

    public void setUyeId(int uyeId) {
        this.uyeId = uyeId;
    }

    public String getUyeAdi() {
        return uyeAdi;
    }

    public void setUyeAdi(String uyeAdi) {
        this.uyeAdi = uyeAdi;
    }

    @Embedded
    public Adres getAdres() {
        return adres;
    }

    public void setAdres(Adres adres) {
        this.adres = adres;
    }

}

Üye sınıfımızda işaretli alanda belirtilen @Embedded anotasyonu ile Adres sınıfının Uye sınıfına gömülü olmasını belirttik. O halde Adres sınıfımızı oluşturalım.

@Embeddable
public class Adres implements Serializable {

    private String sokak;
    private String mahalle;

    public String getSokak() {
        return sokak;
    }

    public void setSokak(String sokak) {
        this.sokak = sokak;
    }

    public String getMahalle() {
        return mahalle;
    }

    public void setMahalle(String mahalle) {
        this.mahalle = mahalle;
    }

}

Adres sınıfımızın üstüne Entity olarak değil @Embeddable olarak işaretliyoruz ve böylelikle ara tablo olarak değil üye tablosunun içerisinde alan olarak veriler tutulmakta ancak Java nesneleri olarak farklı sınıflarda işlem yapmaktayız. Tüm bu süreci bu anotasyonlar sayesinde Hibernate yönetmektedir.

Önceki : Cascade Tipleri Hibernate Dersleri Sonraki: C3Po Connection Pool

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: