Hibernálás | |
---|---|
Típusú | ORM , adatelérési réteg , adatbázis-absztrakciós réteg , perzisztencia keretrendszer [d] , Java- keretrendszer és könyvtár [d] |
Fejlesztő | piros kalap |
Beírva | Jáva |
Első kiadás | 2001 |
Hardver platform | Java virtuális gép |
legújabb verzió |
|
Engedély | GNU LGPL |
Weboldal | hibernate.org |
Médiafájlok a Wikimedia Commons oldalon |
A Hibernate a Java programozási nyelv könyvtára, amelyet az objektum-relációs leképezési ( ORM ) feladatok megoldására terveztek, amely a JPA specifikáció legnépszerűbb megvalósítása . Szabadon terjesztve a GNU Lesser General Public License feltételei szerint .
Lehetővé teszi az alacsony szintű programozás mennyiségének csökkentését, amikor relációs adatbázisokkal dolgozik; használható mind az osztályok és táblák rendszerének a semmiből történő tervezése során, mind a meglévő adatbázisokkal való munka során .
A könyvtár nemcsak a Java osztályok adatbázistáblákhoz (és a Java adattípusok az SQL adattípusokhoz ) társításának problémáját oldja meg, hanem eszközöket biztosít táblakészletek automatikus generálásához és frissítéséhez, lekérdezések felépítéséhez és a kapott adatok feldolgozásához, és jelentősen képes csökkenti a fejlesztési időt, amelyet általában az SQL és JDBC kód kézi írására fordítanak. A Hibernate automatizálja az SQL-lekérdezések generálását, és felszabadítja a fejlesztőt az eredményül kapott adatkészlet kézi feldolgozása és az objektumok átalakítása alól, így a lehető legegyszerűbben tudja átvinni (portolni) az alkalmazást bármilyen SQL adatbázisba.
A Hibernate transzparens perzisztencia támogatást biztosít a " POJO " (vagyis a szabványos Java objektumok) számára; az egyetlen szigorú követelmény a megmaradt osztályokkal szemben, hogy legyen alapértelmezett konstruktor (paraméterek nélkül). Egyes alkalmazásokban a helyes viselkedés érdekében figyelni kell a módszerekre equals()és hashCode()[1] .
Van egy könyvtárport a .NET - NHibernate számára . A Java alternatív ORM keretrendszerei a MyBatis , iBATIS , TopLink , EclipseLink .
A Java osztályok adatbázistáblákkal való leképezése ( leképezés , leképezés, vetítés) konfigurációs XML - fájlok vagy Java annotációk segítségével történik . XML-fájl használatakor a Hibernate forráskód- vázat generálhat a perzisztencia osztályokhoz. Ez nem szükséges, ha megjegyzést használnak. A Hibernate XML-fájlt vagy megjegyzéseket használhat az adatbázisséma támogatására .
Lehetővé teszi az „ egy-a-többhez ” és „ sok- többhöz” osztályok közötti kapcsolat megszervezését . Az objektumok közötti kapcsolatok kezelésén túl a Hibernate képes kezelni a reflexív kapcsolatokat is , ahol egy objektum egy a többhez viszonyban áll saját adattípusának más példányaival .
A Hibernate támogatja az egyéni értéktípusok leképezését. Ez a következő forgatókönyveket teszi lehetővé:
Az adatobjektumok gyűjteményeit általában Java objektumok gyűjteményeként tárolják, például Set és List. A Java 5-ben bevezetett általános eszközök támogatottak . A hibernálás konfigurálható a gyűjtemények lusta betöltésére. A késleltetett betöltés az alapértelmezett beállítás a Hibernate 3 óta.
A kapcsolt objektumok konfigurálhatók a műveletek kaszkádolására . Például a szülőosztály Album (zenei album) beállítható úgy, hogy lépcsőzetesen mentse el és/vagy törölje az alárendelt számot. Ez csökkentheti a fejlesztési időt és biztosíthatja a . A piszkos ellenőrzés funkció elkerüli a műveletek szükségtelen naplózását az adatbázisba, mivel csak akkor hajt végre SQL-frissítést, ha a perzisztens objektumok mezői megváltoznak.
A Hibernate könyvtár sikere arra késztette a JCP -t, hogy kidolgozza a JDO specifikációt, amely a JavaEE platform egyik szabványos ORM technológiája lett. A Hibernate emellett JSR-220/317 kompatibilis, és szabványos JPA-szolgáltatásokat biztosít.
A Hibernate egy SQL -szerű Hibernate Query Language ( HQL)-t biztosít, amely lehetővé teszi a hibernált adatobjektumok mellé írt SQL-szerű lekérdezések végrehajtását. A kritériumlekérdezések a HQL objektumorientált alternatívájaként érhetők el .
A Hibernate használható önálló Java -alkalmazásokban és kiszolgálón futó Java EE programokban (például szervletekben vagy EJB -kben ). Más programozási nyelvek kiegészítőjeként is beépíthető. Például az Adobe integrálta a Hibernate szolgáltatást a ColdFusion kilencedik verziójába (a J2EE alkalmazásokat támogató kiszolgálókon fut ) a CFML -hez csatolt új funkciók és szintaxis absztrakciós rétegével .
Hibernate ORM (a 4.1-es verzió előtt Hibernate Core -nek hívták [2] ) - Hibernate mag, saját API, az objektum metaadatainak xml-leképezése (megjelenítése) (a 3.6-os verzió óta támogatja a metaadatokat annotációk formájában) [3]
Hibernate Annotations (a 3.6-os verziótól, a Hibernate Core / ORM-mel egyesítve) – leképezés (leképezés) JDK 5.0 megjegyzésekkel, mind a JPA , mind a natív kiterjesztések szabványa [4]
Hibernate EntityManager – Java Persistence API megvalósítása Java SE és Java EE számára [5]
Hibernate Envers – állandó osztályok auditálása [6] Hibernate OGM – Object/Grid Mapper – bővítmény adatok NoSQL tárolóban való tárolására [7]
Hibernate Shards – egy keretrendszer az adatbázis-felosztáshoz – egy architekturális megoldás a vízszintes méretezéshez az adatbázistáblák szegmensekre történő particionálásával , megosztott erőforrások nélkül [8]
Hibernate Validator – megjegyzések és API az ellenőrzéshez és az adatok integritásához
Hibernate Search – Hibernált integráció a Lucene keresőmotorral az adatok indexeléséhez és kereséséhez
Hibernate Tools – fejlesztői eszközök az Eclipse és Ant
A Hibernate Metamodel Generator egy annotációs processzor, amely JSR 317 Java Persistence API (JPA 2) statikus metamodell osztályokat állít elő a JSR 269 Pluggable Annotation Processing API [9] segítségével.
Az 1.0-s verzió 2002 júliusában jelent meg, egy évvel később a 2.0-s verzió, egy évvel később pedig a 3.0. A 2006. október 16-i kiadás bemutatta a Hibernate Core-t, a Annotations-t, az Entity Managert (3.2.0.GA verzió JPA támogatással ). 2013 decemberében megjelent a Hibernate ORM 4.3.0. 2015 szeptemberében megjelent a Hibernate ORM 5.0.2.
Java Persistence API | |
---|---|
|
Jáva | |
---|---|
Platformok | |
Sun Technologies | |
Harmadik fél kulcsfontosságú technológiái | |
Sztori |
|
Nyelvi tulajdonságok | |
Szkriptnyelvek |
|
Java konferenciák |
|