Java uygulamaları, verileri kalıcı olarak depolamak için ilişkisel veritabanlarına erişmek için JDBC (Java Veritabanı Bağlantısı) gibi teknolojileri geleneksel olarak kullandı. Asıl sorun, nesne yönelimli ve ilişkisel teknolojiler arasındaki farktı. JDBC API, geliştiricilerin taşınabilirlikten yoksun SQL'deki en ilkel CRUD (oluşturma, okuma, güncelleme ve silme) işlemlerini el ile kodlamasını gerektirir.
Ek olarak, kod tamamen SQL'e bağımlıydı, bu da ilişkisel veritabanları için standart bir şartname değildir ve bu da bir veritabanından diğerine geçişi zorlaştırır. Sorun ilişkisel teknolojinin verilere ve ilişkisine odaklanmasıdır, oysa nesne yönelimli paradigma sadece verilere değil aynı zamanda bu işlemlere de odaklanmaktadır. Bu, nesne-ilişkisel empedans uyumsuzluğu ile sonuçlanır. Yaygın olarak kabul edilen bir çözüm, nesne-ilişkisel haritalamadır (ORM).
Hazırda Bekletme, Java programlama dili için veri kalıcılığıyla ilgili bir ORM (Nesne / İlişkisel Eşleme) çerçevesidir. Java sınıflarını ilişkisel veritabanlarındaki veritabanı tablolarına ve Java'dan SQL veri türlerine eşleyen açık kaynaklı bir nesne ilişkisel eşleme çözümüdür. GNU lisansı altında dağıtılan, geliştiricilere kalıcılık elde etmek için şeffaf bir mekanizma sağlamayı amaçlayan hafif bir ORM çerçevesidir. Uygulamanın geri kalanını değiştirmeden hem mevcut hem de yeni uygulamalarla hızlı bir şekilde entegre olan HQL (Hibernate Query Language kısaltması) adlı SQL'e benzer güçlü bir sorgu dili kullanır. Ayrıca, kalıtım, polimorfizm ve ilişkilendirme gibi nesne yönelimli kavramlarla tamamen uyumludur. Ve en iyi yanı, kalıcılığı sağlamak için uygulama sınıfını değiştirmenizi gerektirmez.
Java Kalıcılık API'si veya JPA, nesne ile ilişkisel eşlemeler ve kalıcı nesne yönetimi arabirimini açıklayan bir özelliktir. API tanımının ötesinde, nesne ilişkisel eşlemenin nasıl uygulanacağı ve bu spesifikasyonların tüm JPA sağlayıcılarıyla nasıl uyumlu hale getirileceği ile ilgili kurallar ve yönergeler kümesini tanımlar. Hazırda Bekletme, JPA yönergelerinin en gelişmiş ve yaygın olarak kullanılan ORM uygulamasıdır. JPA, Java nesneleri / sınıfları ve Java uygulamalarındaki ilişkisel veritabanı arasındaki verileri yönetmek için nesne / ilişkisel eşleme platformunu sağlar. JPA uygulama satıcıları için yüksek performanslı veri erişim katmanı gereksinimlerini hedeflemek amacıyla ORM uygulaması için bir standart oluşturmak üzere tasarlanmış bir arayüz özelliğidir. Hibernate en popüler JPA satıcısıdır.
Java Persistence API'nin kısaltması olan JPA, Java Platform, Standard Edition (Java, SE) ve Java Platform, Enterprise Edition (Java, EE) kullanan uygulamalardaki verilere erişmek, bunları yönetmek ve devam ettirmek için kullanılan bir özelliktir. Hazırda bekletme, ORA uygulaması için JPA özelliklerine uygun bir araçtır.
JPA, Java'daki nesne ilişkisel eşleme için, geliştiricilerin veritabanı işlemlerini çok daha hızlı ve verimli bir şekilde gerçekleştirmelerini sağlayan ve böylece veritabanlarıyla kolay etkileşime izin veren bir özelliktir. Veri bağlama işlemleri için geliştiricilere çeşitli avantajlar sağlayan kalıcılık ve nesne ilişkisel haritalama için standart API'dir. Hazırda Beklet, veritabanlarına bağlanmayı her zamankinden daha kolay hale getirmek için Java uygulamalarının geliştirilmesini basitleştiren açık kaynaklı bir Nesne ilişkisel eşleme aracıdır.
JPA ile ilgili sorun, bunun sadece herhangi bir uygulama sınıfı sağlamayan bir spesifikasyon olmasıdır. API, verileri JPA satıcıları tarafından izlenecek belirli bir kurallar ve düzenlemeler izlenerek bir veritabanında kalıcı olarak depolamak için sınıfların ve yöntemlerin bir koleksiyonudur. Hazırda Beklet, Java SE ve Java EE uygulama sunucuları da dahil olmak üzere JPA'yı destekleyen herhangi bir ortamda JPA belirtimini uygulayan birçok JPA uygulama satıcısından biridir.
Hibernate çerçevesi, en popüler JPA uygulama satıcısı olmanın yanı sıra, standart dışı özelliklerin yanı sıra geriye dönük uyumluluğu teşvik etmek için yerel API'sini korur. Hazırda Beklet, genişletilmiş tanımlayıcı oluşturucular, yeni Tarih ve Saat API'sı, tekrarlanabilir ek açıklamalar, buhar sorgusu sonuçları, özelleştirilebilir CRUD ifadeleri, değiştirilemez varlıklar, doğal kimlikler desteği, ilişkisiz varlıkların geçici birleşimi gibi Java Kalıcılık API'sı tarafından desteklenmeyen çeşitli özelliklerle birlikte gelir , vb.
EntityManager, tüm uygulamalarda aynı olan JPA belirtimi uygulaması için standarttır. Aksine, Hazırda Bekletme API'sını kullanmak istiyorsanız, kalıcılığı işlemek için Hazırda Bekletme özel Oturumunu kullanırsınız. Ancak, Hazırda Bekletme API'larıyla sınırlı olduğu için Oturumu kullanmayı seçerseniz yeni bir tedarikçiye geçemezsiniz.
Hemen hemen tüm kurumsal uygulamaların verileri kalıcı olarak depolamak için bir yol bulması gerekir. İlişkisel veritabanlarına gerekli erişim nedeniyle kurumsal uygulamalar için hayati önem taşır. Kalıcılık, uygulama geliştirmede temel bir kavramdır ve hiyerarşik olarak yapılandırılmış Java nesnelerini hem hızlı hem de verimli bir şekilde bir veritabanına serileştirme ihtiyacı nedeniyle kendi başına bir sorundur. Kalıcılık, Java topluluğunda zaten sıcak bir tartışma konusu olmasına rağmen, birçok geliştirici sorunun kapsamı üzerinde bile anlaşmayacaktır. Nesneye yönelik dil bağlamında kalıcılık, verinin, onu oluşturan işlem sona erdikten sonra bile hala erişilebilir olduğu anlamına gelir. Verileri kalıcı olarak depolamanın birçok yolu vardır. Hazırda Bekletme, Java'da kalıcılık sorununa tam bir çözüm sunmayı amaçlayan böyle bir projedir, oysa JPA kalıcı verileri ve nesne-ilişkisel eşlemeleri yönetmek için bir spesifikasyondur.