Aplikasi Java secara tradisional menggunakan teknologi seperti JDBC (Java Database Connectivity) untuk mengakses pangkalan data hubungan untuk menyimpan data secara berterusan. Masalah utama adalah perbezaan antara teknologi berorientasikan objek dan relasi. API JDBC akan memerlukan pemaju untuk kod-kod yang paling primitif CRUD (mencipta, membaca, mengemas kini, dan memadamkan) operasi di SQL yang tidak boleh digunakan.
Di samping itu, kod tersebut bergantung sepenuhnya kepada SQL yang bukan spesifikasi standard untuk pangkalan data relasi, yang akan menjadikan peralihan dari satu pangkalan data kepada yang lain lebih sukar. Masalahnya ialah teknologi relasi difokuskan pada data dan hubungannya, sedangkan paradigma berorientasi objek menekankan bukan hanya pada data tetapi juga operasi yang dijalankan di atasnya. Ini mengakibatkan ketidakcocokan impedans objek-hubungan. Satu penyelesaian yang diterima secara meluas adalah pemetaan objek-hubungan (ORM).
Hibernate adalah rangka kerja ORM (Object / Relational Mapping) untuk bahasa pengaturcaraan Java yang berkaitan dengan ketekunan data. Ia hanya merupakan penyelesaian pemetaan objek-relational objek terbuka yang memaparkan kelas Java ke jadual pangkalan data dalam pangkalan data hubungan dan dari jenis Java ke jenis data SQL. Ia adalah rangka ORM yang ringan yang diedarkan di bawah lesen GNU yang bertujuan untuk menyediakan pemaju dengan mekanisme yang telus untuk mencapai ketekunan. Ia menggunakan bahasa pertanyaan yang kuat sama dengan SQL yang dipanggil HQL (pendek untuk Hibernate Query Language), yang dengan cepat mengintegrasikan dengan kedua-dua aplikasi yang sedia ada dan baru tanpa mengubah sisa aplikasi. Selain itu, ia sepenuhnya mematuhi konsep berorientasikan objek seperti warisan, polimorfisme, dan persatuan. Dan bahagian yang terbaik, ia tidak memerlukan anda untuk mengubah kelas aplikasi untuk mencapai ketekunan.
Java Persistence API, atau JPA, adalah spesifikasi yang menggambarkan antarmuka untuk pemetaan objek-objek dan pengurusan objek yang berterusan. Di luar definisi API, ia mentakrifkan set peraturan dan garis panduan bagaimana melaksanakan pemetaan relasi objek dan bagaimana membuat spesifikasi ini sesuai dengan semua pembekal JPA. Hibernate adalah pelaksanaan ORM yang paling maju dan digunakan secara meluas bagi garis panduan JPA. JPA hanya menyediakan platform pemetaan objek / relasi untuk mengurus data antara objek / kelas Jawa dan pangkalan data relasi dalam aplikasi Java. Ia adalah satu spesifikasi antara muka yang direka untuk vendor pelaksanaan JPA untuk mencipta piawaian bagi pelaksanaan ORM untuk mensasarkan keperluan lapisan akses data prestasi tinggi. Hibernate adalah penjual JPA yang paling popular.
JPA, pendek untuk Java Persistence API, adalah spesifikasi untuk mengakses, mengurus dan meneruskan data dalam aplikasi menggunakan Platform Java, Edisi Standard (Java, SE) dan Platform Java, Enterprise Edition (Java, EE). Hibernate, sebaliknya, merupakan alat untuk pelaksanaan ORM yang mematuhi spesifikasi JPA.
JPA adalah spesifikasi untuk pemetaan objek objek di Jawa yang membolehkan pemaju menjalankan operasi pangkalan data lebih pantas dan cekap dengan itu membolehkan interaksi mudah dengan pangkalan data. Ia adalah API standard untuk kegigihan dan pemetaan relasi objek yang menyediakan beberapa kelebihan kepada pemaju untuk operasi mengikat data. Hibernate adalah alat pemetaan objek hubungan terbuka yang memudahkan pembangunan aplikasi Java untuk membuat sambungan ke pangkalan data lebih mudah daripada sebelumnya.
Masalah dengan JPA adalah bahawa ia hanya satu spesifikasi yang tidak menyediakan sebarang kelas pelaksanaan. API hanya sekumpulan kelas dan kaedah untuk menyimpan data secara berterusan ke pangkalan data berikutan satu set peraturan dan peraturan tertentu yang akan diikuti oleh vendor JPA. Hibernate adalah salah satu daripada banyak vendor pelaksanaan JPA yang menerapkan spesifikasi JPA dalam lingkungan yang mendukung JPA termasuk Java SE dan Java EE server aplikasi.
Selain menjadi vendor pelaksanaan JPA yang paling popular, rangka kerja Hibernate mengekalkan API asalnya untuk mempromosikan keserasian mundur serta menampung ciri-ciri tidak standard. Hibernate dilengkapi dengan beberapa ciri yang tidak disokong oleh API Ketahanan Java seperti penjana pengecam lanjutan, API Tarikh dan Masa yang baru, anotasi berulang, keputusan pertanyaan stim, penyataan CRUD yang disesuaikan, entiti tidak berubah, sokongan ID semulajadi, gabungan ad hoc entiti tidak berkaitan , dan lain-lain.
EntityManager adalah piawaian untuk pelaksanaan spesifikasi JPA yang sama di semua pelaksanaan. Sebaliknya, jika anda mahu menggunakan API Hibernate, maka anda akan menggunakan Sesi khusus Hibernate untuk menangani kegigihan. Walau bagaimanapun, anda tidak akan dapat berhijrah ke vendor baru jika anda memilih untuk menggunakan Sesi kerana ia terhad kepada API Hibernate.
Hampir semua aplikasi perusahaan memerlukan beberapa cara untuk menyimpan data secara berterusan. Ini penting untuk aplikasi perusahaan kerana akses yang diperlukan untuk pangkalan data hubungan. Kegigihan adalah konsep asas dalam pembangunan aplikasi dan merupakan satu cabaran dalam dirinya sendiri kerana keperluan untuk membahagikan objek Java berstruktur hierarki ke pangkalan data dengan cara yang cepat dan cekap. Walaupun kegigihan telah menjadi topik perbincangan hangat di masyarakat Jawa, banyak pemaju tidak akan bersetuju mengenai skop masalah tersebut. Dalam konteks bahasa yang berorientasikan objek, kegigihan bermakna data masih boleh diakses walaupun selepas proses yang mewujudkannya telah berakhir. Terdapat banyak cara untuk menyimpan data secara berterusan. Hibernate adalah satu projek sedemikian yang bertujuan untuk memberikan penyelesaian lengkap kepada masalah kegigihan di Jawa, sedangkan JPA adalah spesifikasi untuk mengurus data berterusan dan pemetaan objek-objek.