Hibernált (könyvtár)

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 .

Megjelenítés

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é:

Kitartás

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.

HQL

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 .

Integráció

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 .

Összetevők

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.

Verzióelőzmények

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.

Lásd még

Jegyzetek

  1. Irányelvek az equals() és a hashCode() metódusok használatához hibernált  állapotban (  halott link) . Letöltve: 2009. augusztus 20. Az eredetiből archiválva : 2003. december 6..
  2. A Hibernate Core név megváltoztatásának okáról -> Hibernate ORM . Letöltve: 2015. március 5. Az eredetiből archiválva : 2015. március 18..
  3. HIBERNÁT – Relációs perzisztencia idiomatikus Java-hoz (lefelé irányuló kapcsolat) . jboss közösség. Archiválva az eredetiből 2012. február 17-én. 
  4. Hibernált megjegyzések (lefelé irányuló kapcsolat) . jboss közösség. Archiválva az eredetiből 2012. február 17-én. 
  5. Hibernált EntityManager (lefelé irányuló kapcsolat) . jboss közösség. Archiválva az eredetiből 2012. február 17-én. 
  6. Hibernate Envers – Easy Entity Auditing (downlink) . jboss közösség. Archiválva az eredetiből 2012. február 17-én. 
  7. Hibernált OGM (lefelé irányuló kapcsolat) . jboss közösség. Archiválva az eredetiből 2012. február 17-én. 
  8. Glover, Andrew. Java fejlesztés 2.0: Java Development Wave 2: Sharding with Hibernate Shards (link nem működik) (2012. február 27.). Az eredetiből archiválva : 2013. július 19. 
  9. Hibernált metamodellgenerátor (lefelé irányuló kapcsolat) . jboss közösség. Archiválva az eredetiből 2012. február 17-én. 

Irodalom

Az egyik első könyv a hibernálásról, amelyet a Singlewire Software tapasztalt fejlesztője írt, aki jóval azelőtt dolgozott objektum-orientált technológiákkal, hogy azok népszerűvé váltak volna. Christian Bauer a Hibernate fejlesztőcsapat tagja, Gavin King a Hibernate projekt alapítója, az EJB 3.0 (JSR 220) szakértői csoport tagja, valamint a Web Beans JSR 299 szabvány fejlesztésének vezetője, amely magában foglalja a Hibernate, a JSF és az EJB 3.0 koncepciói. A könyv a Hibernate 2.x elavult verzióját írja le. A kritikusok az egyik legjobbnak tartják Valójában ez a "Hibernate in Action" című könyv frissített és átdolgozott változata, amely leírja a Hibernate 3.x-et és a JPA -t . A könyv második, a Hibernate 5-öt leíró kiadása a tervek szerint 2015 elején jelenik meg (az egyes fejezetek 2013 márciusa óta vannak online)

Linkek