際際滷

際際滷Share a Scribd company logo
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 dier veri kal脹c脹l脹脹 salayan k端t端phanelerin ( Hibernate, Toplink, JDO gibi ) ortak bir tan脹m alt脹nda birletirilmesi.  Daha 旦nce her k端t端phane kendi API'sini veriyordu ve birinden dierine ge巽i zorla脹yordu.
Veri Kal脹c脹l脹脹 Katman脹
JPA Provider Se巽imine 姻稼艶一
JPA 3 ana b旦l端mden olumaktad脹r 1. JPA S脹n脹f 堰庄霞艶姻温姻庄壊庄 2. JPQL (Java Persistance Query Language) 3. Nesne Tablo ilikisini g旦steren mapping meta datas脹
JPA'da nemli S脹n脹flar脹n 堰庄霞艶姻温姻庄壊庄
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 olduunu 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.
姻稼艶一 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. rnein 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!
姻稼艶一 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. 聴likiler/Balant脹lar (association)
姻稼艶一
Nesne Y旦nelimli Programlama Sebebiyle Hibernate Taklalar Atmak Zorundad脹r Veri Soyutlama sebebiyle Reflection kullan脹l脹r 聴liki/Balant脹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 erime Herey java.lang.reflect.AccessibleObject  ile olur
S脹n脹flar Aras脹 Balant脹lar (Association)
Tek Y旦nl端 Balant脹lar Many-To-One ve One-To-One 聴巽in Byte Code Provider Kullan脹r
Dier Balant脹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 bal脹d脹r ve session kapat脹l脹nca kaybolur. 聴kincil 旦nbellek ise session factory nesnesine bal脹d脹r ve session factory kapat脹l脹nca kaybolur.

More Related Content

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 dier veri kal脹c脹l脹脹 salayan k端t端phanelerin ( Hibernate, Toplink, JDO gibi ) ortak bir tan脹m alt脹nda birletirilmesi. Daha 旦nce her k端t端phane kendi API'sini veriyordu ve birinden dierine ge巽i zorla脹yordu.
  • 3. JPA Provider Se巽imine 姻稼艶一
  • 4. JPA 3 ana b旦l端mden olumaktad脹r 1. JPA S脹n脹f 堰庄霞艶姻温姻庄壊庄 2. JPQL (Java Persistance Query Language) 3. Nesne Tablo ilikisini g旦steren mapping meta datas脹
  • 5. JPA'da nemli S脹n脹flar脹n 堰庄霞艶姻温姻庄壊庄
  • 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 olduunu 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. 姻稼艶一 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. rnein 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. 姻稼艶一 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. 聴likiler/Balant脹lar (association)
  • 13. Nesne Y旦nelimli Programlama Sebebiyle Hibernate Taklalar Atmak Zorundad脹r Veri Soyutlama sebebiyle Reflection kullan脹l脹r 聴liki/Balant脹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 erime Herey java.lang.reflect.AccessibleObject ile olur
  • 16. Tek Y旦nl端 Balant脹lar Many-To-One ve One-To-One 聴巽in Byte Code Provider Kullan脹r
  • 17. Dier Balant脹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 bal脹d脹r ve session kapat脹l脹nca kaybolur. 聴kincil 旦nbellek ise session factory nesnesine bal脹d脹r ve session factory kapat脹l脹nca kaybolur.