Focus mode
Bu bölümde Hibernate ve JPA (Java Persistence API) arasındaki bazı farklara odaklanacağım. Bu farklar genellikle sözsel anlatım gerektiren konseptlerdir.
Hibernate, JPA'yı uygulayan bir ORM (Object-Relational Mapping) aracıdır. Hibernate, JPA'yı uygularken kendi özel özelliklerini getirir. Bu özelliklerin bazıları şunlardır:
Hibernate Query Language (HQL): Hibernate, kendi sorgu dili olan HQL'yi kullanır. JPA'da benzer bir yapı olan JPQL (Java Persistence Query Language) bulunur. HQL, SQL'ye benzer bir yapıya sahiptir ve veritabanı bağımsızdır. Bu, ORM aracının değiştirilmesi durumunda sorgularda yapılan değişiklikleri minimize eder.
Second Level Caching: Hibernate, JPA'dan farklı olarak "Second Level Caching" özelliğini destekler. Bu, sıkça kullanılan ve değişmeyen verilerin önbellekte saklanarak performansı artırır. Veri tabanından sıkça çekilen ancak nadiren değişen veriler, özel bir konfigürasyon ile önbelleğe alınabilir.
Optimistik ve Pesimistik Sürüm Kontrolü: Hibernate, sürüm kontrolü sağlayarak aynı veri üzerinde birden fazla kullanıcının değişiklik yapmasını önler. Bu, veriyi değiştirmeden önce sürüm kontrolü yapılmasını sağlar.
Event Listenerlar: Hibernate, nesne yaşam döngüsündeki çeşitli olayları dinleyebilen event listenerlar içerir. Örneğin, bir entity'e ekleme yapıldığında veya silme işlemi gerçekleştirildiğinde bu olayları dinleyebilir ve özel işlemler gerçekleştirebilirsiniz.
Soft Delete: Hibernate, veritabanında silme işlemi için farklı stratejiler sunar. "Hard Delete" veriyi tamamen silerken, "Soft Delete" veriyi veritabanında tutar ve belirli bir işaretleme yapar. Bu, veriye erişmenin devam etmesini sağlar, ancak kullanıcı arayüzünde gizlenmesine olanak tanır.
ID Üretim Stratejileri: Hibernate, JPA'nın sunduğu temel ID üretim stratejilerine ek olarak kendi ID üretim stratejilerini sağlar.
Bu farklılıkların bilinmesi, Hibernate kullanıcılarına özgü optimizasyonları ve özellikleri daha etkili bir şekilde kullanmalarına olanak tanır. Bu bölümde, Hibernate ve JPA arasındaki belirgin farklara odaklanarak bu konuları ele aldık. Bir sonraki bölümde görüşmek üzere.
Programs to Accelerate Your Progress in a Software Career
Join our 4-8 month intensive Patika+ bootcamps, start with the fundamentals and gain comprehensive knowledge to kickstart your software career!
You need to enroll in the course to be able to comment!