Hibernate ve JPA (Java Persistance API) JPA Nedir : Java EE 5 ile gelen standart persistance (verinin kalıcı hale gelmesi) API'sidir. Faydası : Daha önceden mevcut olan diğer veri kalıcılığı sağlayan kütüphanelerin ( Hibernate, Toplink, JDO gibi ) ortak bir tanım altında birleştirilmesi.  Daha önce her kütüphane kendi API'sini veriyordu ve birinden diğerine geçiş zorlaşıyordu.
Veri Kalıcılığı Katmanı
JPA Provider Seçimine Örnek
JPA 3 ana bölümden oluşmaktadır 1. JPA Sınıf Hiyerarşisi 2. JPQL (Java Persistance Query Language) 3. Nesne Tablo ilişkisini gösteren mapping meta datası
JPA'da Önemli Sınıfların Hiyerarşisi
Metadata ve JPQL
Hibernate ve JPA Hibernate daha eski ve büyük.JPA bir çok yapıyı buradan almış
Peki Hibernate ve JPA Arasında Ne Fark Var ? JPA'nın sadece bir standart olduğunu unutmayalım. Hibernate onu implement ediyor. Dolayısıyla JPA = Hibernate gibi düşünülebilir ancak arada bazı küçük farklılıklar halen var.
Örnek 1 : HQL ve JPQL arasındaki farklar Hibernate ile de bir sorgulama dili geliyor. İsmi Hibernate Query Language (HQL). HQL ile JPQL arasında farklar var. Örneğin en büyük fark HQL ile “from Customer” denirken JPQL ile “select from Customer” demek gerekiyor. Dolayısıyla HQL ve JPQL aynı anda  kullanılamazlar!
Örnek 2 : Default Constructor Kullanımı The JPA specification requires that all persistent classes have a no-arg constructor. This constructor may be  public or protected. All persistent classes must have a default constructor (which can be non-public) so that Hibernate can instantiate them using Constructor.newInstance(). It is recommended that you have a default constructor with at least  package visibility  for runtime proxy generation in Hibernate.
Nesne Yönelimli Programlamada Temel Kavramlar 1. Veri Soyutlama (data abstraction) 2. Çok biçimlilik (polymorphisim) 3. Kalıtım (inheritance) 4. İlişkiler/Bağlantılar (association)
Örnek
Nesne Yönelimli Programlama Sebebiyle Hibernate Taklalar Atmak Zorundadır Veri Soyutlama sebebiyle Reflection kullanılır İlişki/Bağlantılar sebebiyle byte code instrumentation veya kendi içindeki persistant sınıfları kullanır Kalıtım için de çözümü vardır
Reflection ile gizlenmiş verilere erişme Herşey java.lang.reflect.AccessibleObject  ile olur
Sınıflar Arası Bağlantılar (Association)
Tek Yönlü Bağlantılar Many-To-One ve One-To-One İçin Byte Code Provider Kullanır
Diğer Bağlantılar İçin Kendi içindeki Sınıfları Kullanılır PersistentArrayHolder, PersistentBag, PersistentElementHolder, PersistentIdentifierBag, PersistentIndexedElementHolder, PersistentList, PersistentMap, PersistentSet gibi.
Hibernate İle İki Kademe Önbellek (cache) gelir Birincil önbellek session'a bağlıdır ve session kapatılınca kaybolur. İkincil önbellek ise session factory nesnesine bağlıdır ve session factory kapatılınca kaybolur.

More Related Content

PPS
JPA - Java Persistence API
PDF
ICT and travel avoidance
ODP
Hibernate ve jpa
PPT
EJB 3.2/JPA 2.1 Best Practices with Real-Life Examples - CON7535
PPTX
Евгений Капинос "Advanced JPA (Java Persistent API)"
PDF
JPA and Hibernate
ODP
JPA Best Practices
PPT
Java Persistence API (JPA) Step By Step
JPA - Java Persistence API
ICT and travel avoidance
Hibernate ve jpa
EJB 3.2/JPA 2.1 Best Practices with Real-Life Examples - CON7535
Евгений Капинос "Advanced JPA (Java Persistent API)"
JPA and Hibernate
JPA Best Practices
Java Persistence API (JPA) Step By Step

Similar to Hibernate ve jpa (15)

PPTX
AnkaraJUG Nisan 2013 - Java Persistance API
PPTX
Jpa
PDF
Bilginç IT Academy - JPA (Java Persistence API)
PPTX
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORM
PDF
Java ve axis2 framework ile web service yayınlamak
PDF
20160414 voxxed days_ist_dynamic_proxy_based_view_model_tr
ODP
Ozgur web-gunleri-sunum
PPTX
PDF
Spring application framework
PPT
Java EE Struts
PPT
NoSQL Sunumu
PPT
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
PDF
İlişkisel Veritabanları, ORM ve Doctrine
PPTX
Nosql wars & machine learning
AnkaraJUG Nisan 2013 - Java Persistance API
Jpa
Bilginç IT Academy - JPA (Java Persistence API)
Azerbaycan Qafqaz Üniversitesi - (Java Persistence API) JPA ve Hibernate ile ORM
Java ve axis2 framework ile web service yayınlamak
20160414 voxxed days_ist_dynamic_proxy_based_view_model_tr
Ozgur web-gunleri-sunum
Spring application framework
Java EE Struts
NoSQL Sunumu
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
İlişkisel Veritabanları, ORM ve Doctrine
Nosql wars & machine learning
Ad

Hibernate ve jpa

  • 1. Hibernate ve JPA (Java Persistance API) JPA Nedir : Java EE 5 ile gelen standart persistance (verinin kalıcı hale gelmesi) API'sidir. Faydası : Daha önceden mevcut olan diğer veri kalıcılığı sağlayan kütüphanelerin ( Hibernate, Toplink, JDO gibi ) ortak bir tanım altında birleştirilmesi. Daha önce her kütüphane kendi API'sini veriyordu ve birinden diğerine geçiş zorlaşıyordu.
  • 4. JPA 3 ana bölümden oluşmaktadır 1. JPA Sınıf Hiyerarşisi 2. JPQL (Java Persistance Query Language) 3. Nesne Tablo ilişkisini gösteren mapping meta datası
  • 7. Hibernate ve JPA Hibernate daha eski ve büyük.JPA bir çok yapıyı buradan almış
  • 8. Peki Hibernate ve JPA Arasında Ne Fark Var ? JPA'nın sadece bir standart olduğunu unutmayalım. Hibernate onu implement ediyor. Dolayısıyla JPA = Hibernate gibi düşünülebilir ancak arada bazı küçük farklılıklar halen var.
  • 9. Örnek 1 : HQL ve JPQL arasındaki farklar Hibernate ile de bir sorgulama dili geliyor. İsmi Hibernate Query Language (HQL). HQL ile JPQL arasında farklar var. Örneğin en büyük fark HQL ile “from Customer” denirken JPQL ile “select from Customer” demek gerekiyor. Dolayısıyla HQL ve JPQL aynı anda kullanılamazlar!
  • 10. Örnek 2 : Default Constructor Kullanımı The JPA specification requires that all persistent classes have a no-arg constructor. This constructor may be public or protected. All persistent classes must have a default constructor (which can be non-public) so that Hibernate can instantiate them using Constructor.newInstance(). It is recommended that you have a default constructor with at least package visibility for runtime proxy generation in Hibernate.
  • 11. Nesne Yönelimli Programlamada Temel Kavramlar 1. Veri Soyutlama (data abstraction) 2. Çok biçimlilik (polymorphisim) 3. Kalıtım (inheritance) 4. İlişkiler/Bağlantılar (association)
  • 13. Nesne Yönelimli Programlama Sebebiyle Hibernate Taklalar Atmak Zorundadır Veri Soyutlama sebebiyle Reflection kullanılır İlişki/Bağlantılar sebebiyle byte code instrumentation veya kendi içindeki persistant sınıfları kullanır Kalıtım için de çözümü vardır
  • 14. Reflection ile gizlenmiş verilere erişme Herşey java.lang.reflect.AccessibleObject ile olur
  • 16. Tek Yönlü Bağlantılar Many-To-One ve One-To-One İçin Byte Code Provider Kullanır
  • 17. Diğer Bağlantılar İçin Kendi içindeki Sınıfları Kullanılır PersistentArrayHolder, PersistentBag, PersistentElementHolder, PersistentIdentifierBag, PersistentIndexedElementHolder, PersistentList, PersistentMap, PersistentSet gibi.
  • 18. Hibernate İle İki Kademe Önbellek (cache) gelir Birincil önbellek session'a bağlıdır ve session kapatılınca kaybolur. İkincil önbellek ise session factory nesnesine bağlıdır ve session factory kapatılınca kaybolur.