Hibernate Ders-9 @Embeddable Ve @Embedded

Merhaba arkadaşlar;

Bu yazımda @Embedded ve @Embeddable notasyonlarından bahsedeceğim. Bazen sadece bir sınıf üzerinden işlemleri yapmak isteriz. Yani bir sınıf oluştururuz bunu @Entity ile kalıcı yaparız ve oluşturduğumuz ikinci sınıfı bu sınıfa dâhil edebiliriz. İşte bu işlemleri yapmamızda bu kullandığımız notasyonlar kullanılır. Şimdi basit bir örnek ile konuyu anlatayım:

Hibernate ayar dosyamızda veritabanı için gerekli bilgileri ve ayarları yaparız. Eğer tablolarımız mevcut değilse update ile oluşturulmasını eğer tablolarımız varsa güncellenmesini istiyoruz. Şimdi sınıflarımıza bakalım.

 

@Entity => Sınıfımızı kalıcı hale getirmek için kullanıldı.

@Table(name=”Personel_Bilgileri”) => Tablomuza ait özellikler kullanılmak için kullanıldı. Tablomuza ‘Personel_Bilgileri’ ismini verdik.

@Id => İd değerimizi tanımladık.

@Column(name=”id”) => Sütunumuza ait özellikler kullanılmak için kullanıldı. Tablomuza ‘id’ ismini verdik.

@GeneratedValue => Değişkenimizin primary key olacağını belirtir ve (strategy=GenerationType.AUTO) ile strateji olarak otomatik artacağını belirtiriz.

Adres sınıfımızdan nesne ürettik ve bu nesnenin getter/setter metotlarını ürettik :

@Embedded => Kalıcı olmasını istediğimiz sınıfı bir kalıcı sınıfa eklemek için kullanılır.

Şimdi @Embeddable sınıfımıza bakalım.

 

@Embeddable => Sınıfımızı bir sınıfa eklemek istediğimizi belirtir ve sınıfın en üstüne yazılır.

Bu sınıfımıza değişkenlerimiz ve yapıcı metotlarımız mevcut. Şimdi projemizi run edeceğimiz sınıfımızı inceleyelim.

 

Configuration sınıfından nesne ürettik ve bu nesneyi oluşturduğumuz hibernate.cfg.xml dosyasının yerini belirterek configure ettik.

Daha sonra configuration nesnesi ile SessionFactory oluşturuldu. Parametreli metotlarımız kullanılarak gerekli bilgiler değişkenlere aktarıldı. Ve en son olarak Transaction başlatılarak session ile personel nesnemiz kaydedildi. Ve işte oluşturulan tablo ve girdiğimiz bilgiler :

Görüldüğü üzere kayıt başarılı bir şekilde yapılmış ve sınıfımız kalıcı sınıfımıza eklenmiş…

Bir cevap yazın

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