Merhaba arkadaşlar bu yazımda JPA da Native Query yazma işlemlerini göreceğiz.
Native Query => Sql sorgu dili kullanılarak oluşturulan querydir.
Şimdi Personel sınıfımızı yazalı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 |
package _006_model; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.NamedNativeQuery; @Entity @NamedNativeQuery(name = "tumu", query = "Select * from Personel", resultClass = Personel.class) public class Personel { @Id private int id; private String isim; private String soyisim; private String adres; public Personel() { } public Personel(int id, String isim, String soyisim, String adres) { this.id = id; this.isim = isim; this.soyisim = soyisim; this.adres = adres; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getIsim() { return isim; } public void setIsim(String isim) { this.isim = isim; } public String getSoyisim() { return soyisim; } public void setSoyisim(String soyisim) { this.soyisim = soyisim; } public String getAdres() { return adres; } public void setAdres(String adres) { this.adres = adres; } } |
NamedNativeQuery => name ve query özelliği verilerek name kullanılarak query çağrılır. Bir query’i defalarca yazma gereksiniminden bizi kurtarır.ResultClass özelliği ile gelen verinin hangi türde olacağını belirtiyoruz.
Test sınıfımız:
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 |
package _006_test; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import _006_model.Personel; public class Test { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPA_Tutorial"); EntityManager em = emf.createEntityManager(); EntityTransaction transaction = em.getTransaction(); List<Personel> personelListesi = em.createNativeQuery("Select * from Personel", Personel.class).getResultList(); List<Personel> liste = em.createNamedQuery("tumu").getResultList(); for (Personel personel : liste) { System.out.println(personel.getId() + " " + personel.getIsim() + " " + personel.getSoyisim() + " => "+ personel.getAdres()); } em.close(); emf.close(); } } |
CreateNativeQuery kullanılarak sql cümlesi çalıştırılır, createNamedQuery ile ise yazdığımız namedQuery çağrılır. Burada Personel listesindeki bütün verileri çekiyorum ve for döngüsü ile console ekranına yazdırıyorum.
Personel Tablosu:Projeyi run ettikten sonraki console ekranı:Görüldüğü üzere Personel tablosundan veriler çekildi ve console ekranına yazdırıldı.
Bu yazımı burada bitiriyorum diğer yazılarımda görüşmek üzere….