Merhaba arkadaşlar bugün Entity sınıfımızın table ve column özelliklerine bakacağız.
Bildiğiniz üzere bir adet Personel isimli tablomuz var. Bu tablomuzunda id, isim, soyisim ve adres diye sütunları var. Bu sütunlara karşılık olarak Entity sınıfımızda aynı isme sahip değişkenler mevcut oluyordu. Şimdi Personel yerine bir adet Kisi isimli sınıf oluşturalım ve değişken isimleri tablomuzdaki sütunlardan farklı olsun. Eğer bu şekilde persist etmeye çalışırsak hata alırız. Hatamızın nedeni de Kisi tablomuzu bulamaması ve değişken isimlerine sahip sütun bulamamasıdır.
Şimdi pojo sınıfımızı yazalım ve bu sorunlara çözüm bulalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
package _005_model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name="Personel") public class Kisi { @Id private int id; @Column(name="isim",length=20,nullable=false) private String ad; @Column(name="soyisim",length=10,nullable=false) private String soyad; @Column(name="adres") private String mahalle; public Kisi(int id, String ad, String soyad, String mahalle) { this.id = id; this.ad = ad; this.soyad = soyad; this.mahalle = mahalle; } public Kisi() { } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getAd() { return ad; } public void setAd(String ad) { this.ad = ad; } public String getSoyad() { return soyad; } public void setSoyad(String soyad) { this.soyad = soyad; } public String getMahalle() { return mahalle; } public void setMahalle(String mahalle) { this.mahalle = mahalle; } } |
Burada @Entity ve @Id notasyonlarının kullanımını zaten görmüştük. Şimdi diğer notasyonların kullanımına bakalım.
@Table => Sınıfımızın tanımlandığı yere yazılır ve tablo işlemleri burada yapılır. Biz name özelliğini kullanarak tablomuzun ismini belirttik.
@Column => Sütun tanımlamaları için kullanılır. Name özelliğine hangi sütun için kullanacağımızı belirttik. Length özelliği ile karakter uzunluğunu, nullable özelliğine ise boş geçilip geçilemeyeceğini belirtiyoruz.
Şimdi Test sınıfımızı yazalım ve run edelim tekrardan hata alacak mıyız ona bakalım?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package _005_test; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import _005_model.Kisi; public class Test { public static void main(String[] args) { EntityManagerFactory emf=Persistence.createEntityManagerFactory("JPA_Tutorial"); EntityManager em=emf.createEntityManager(); EntityTransaction transaction=em.getTransaction(); Kisi kisi=new Kisi(2, "Furkan", "KOÇ", "Mahalle1"); transaction.begin(); em.persist(kisi); transaction.commit(); em.close(); emf.close(); } } |
Run ettikten sonraki tablomuzun görüntüsü:Görüldüğü gibi insert işlemi başarılı bir şekilde gerçekleşti. Bu yazımı burada bitiriyorum diğer yazılarımda görüşmek üzere…