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.
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
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.