Övervintra | |
---|---|
Sorts | ORM , Data Access Layer , Database Abstraction Layer , Persistence Framework [d] , Java Framework and Library [d] |
Utvecklaren | röd hatt |
Skrivet i | Java |
Första upplagan | 2001 |
Hårdvaruplattform | Java Virtual Machine |
senaste versionen | |
Licens | GNU LGPL |
Hemsida | hibernate.org |
Mediafiler på Wikimedia Commons |
Hibernate är ett bibliotek för programmeringsspråket Java utformat för att lösa ORM -uppgifter (objektrelationell kartläggning ), den mest populära implementeringen av JPA- specifikationen . Distribueras fritt under villkoren i GNU Lesser General Public License .
Låter dig minska mängden lågnivåprogrammering när du arbetar med relationsdatabaser; kan användas både i processen att designa ett system med klasser och tabeller från början och för att arbeta med en befintlig databas .
Biblioteket löser inte bara problemet med att associera Java-klasser med databastabeller (och Java-datatyper med SQL- datatyper ), utan tillhandahåller också verktyg för att automatiskt generera och uppdatera en uppsättning tabeller, bygga frågor och bearbeta mottagna data, och kan avsevärt minska utvecklingstiden, som vanligtvis spenderas på att manuellt skriva SQL- och JDBC -kod. Hibernate automatiserar genereringen av SQL-frågor och befriar utvecklaren från manuell bearbetning av den resulterande datamängden och transformation av objekt, vilket gör det så enkelt som möjligt att överföra (porta) applikationen till alla SQL-databaser.
Hibernate tillhandahåller transparent beständighetsstöd för " POJOs " (det vill säga för standard Java-objekt); det enda strikta kravet för en beständig klass är att ha en standardkonstruktor (inga parametrar). För korrekt beteende i vissa applikationer måste du också vara uppmärksam på metoderna equals()och hashCode()[1] .
Det finns en biblioteksport för .NET - NHibernate . Alternativa ORM-ramverk för Java är MyBatis , iBATIS , TopLink , EclipseLink .
Mappning ( mappning , mappning, projektion) av Java-klasser med databastabeller utförs med hjälp av XML -konfigurationsfiler eller Java-anteckningar . När du använder en XML-fil kan Hibernate generera ett källkodsskelett för beständighetsklasser. Detta är inte nödvändigt om en anteckning används. Hibernate kan använda en XML-fil eller anteckningar för att stödja databasschemat .
Ger möjlighet att organisera relationen mellan klasserna " en-till-många " och " många-till-många ". Förutom att hantera relationer mellan objekt, kan Hibernate också hantera reflexiva relationer , där ett objekt har en en-till-många-relation med andra instanser av sin egen datatyp .
Hibernate stöder kartläggning av anpassade värdetyper. Detta gör följande scenarier möjliga:
Samlingar av dataobjekt lagras vanligtvis som samlingar av Java-objekt, såsom Set och List. Generika som introduceras i Java 5 stöds . Hibernate kan konfigureras för att ladda samlingar. Lazy loading är standardalternativet sedan Hibernate 3.
Länkade objekt kan konfigureras för att kaskadoperationer . Till exempel kan den överordnade klassen Album (musikalbum) konfigureras för att kaskad spara och/eller ta bort dess underordnade spår. Detta kan minska utvecklingstiden och säkerställa integriteten hos . Funktionen för smutsig kontroll undviker onödig loggning av åtgärder till databasen genom att utföra en SQL-uppdatering endast när fälten för beständiga objekt ändras.
Framgången med Hibernate-biblioteket ledde till att JCP utvecklade JDO-specifikationen, som har blivit en av standard-ORM-teknologierna i JavaEE-plattformen. Hibernate är också JSR-220/317-kompatibel och tillhandahåller standard JPA-faciliteter.
Hibernate tillhandahåller ett SQL -liknande Hibernate Query Language ( HQL) som låter dig köra SQL-liknande frågor skrivna bredvid Hibernate-dataobjekt. Kriteriefrågor tillhandahålls som ett objektorienterat alternativ till HQL.
Hibernate kan användas både i fristående Java -applikationer och i Java EE -program som körs på en server (som en servlet eller EJBs ). Det kan också inkluderas som en extra funktion till andra programmeringsspråk. Till exempel har Adobe integrerat Hibernate i den nionde versionen av ColdFusion (körs på servrar som stöder J2EE- applikationer ) med ett abstrakt lager av nya funktioner och syntax kopplat till CFML .
Hibernate ORM (före version 4.1 kallades det Hibernate Core [2] ) - Hibernate core, eget API, xml-mappning (visning) av objektmetadata (stöd för metadata i form av annoteringar sedan version 3.6) [3]
Hibernate Annotations (från version 3.6 slås samman med Hibernate Core / ORM) - mappning (mappning) med JDK 5.0-annoteringar, både standard för JPA och inbyggda tillägg [4]
Hibernate EntityManager - implementering av Java Persistence API för Java SE och Java EE [5]
Hibernate Envers - granska beständiga klasser [6] Hibernate OGM - Object / Grid Mapper - tillägg för att lagra data i NoSQL- lagring [7]
Hibernate Shards - ett ramverk för databasskärning - en arkitektonisk lösning för horisontell skalning med partitionering av databastabeller i segment på någon basis utan delade resurser [8]
Hibernate Validator - anteckningar och API för validering och dataintegritet
Hibernate Search - Hibernate integration med Lucene sökmotor , i syfte att indexera och söka data
Hibernate Tools - utvecklingsverktyg för Eclipse och Ant
Hibernate Metamodel Generator är en annoteringsprocessor som genererar JSR 317 Java Persistence API (JPA 2) statiska metamodellklasser med JSR 269 Pluggable Annotation Processing API [9]
Version 1.0 släpptes i juli 2002, ett år senare kom version 2.0 och ett år senare - 3.0. Utgåvan den 16 oktober 2006 introducerade Hibernate Core, Annotations, Entity Manager (version 3.2.0.GA med JPA -stöd ). I december 2013 släpptes Hibernate ORM 4.3.0. I september 2015 släpptes Hibernate ORM 5.0.2.
Java Persistence API | |
---|---|
|
Java | |
---|---|
Plattformar | |
Sun Technologies | |
Viktiga tredjepartstekniker | |
Berättelse |
|
Språkegenskaper | |
Skriptspråk |
|
Java-konferenser |
|