Hibernate (framework): Difference between revisions

Content deleted Content added
Tag: possible vandalism
WikiCleanerBot (talk | contribs)
m v2.05b - Bot T20 CW#61 - Fix errors for CW project (Reference before punctuation)
 
(254 intermediate revisions by more than 100 users not shown)
Line 1:
{{short description|Object–relational mapping tool}}
{{Infobox software
| logo name = [[Image:Hibernate.png]] ORM
| name logo = Hibernate ORMlogo.svg
| logo size = 250px
| developer = [[Red Hat]]
| developer = [[Red Hat]]
| status = Active
| released = {{Start date and age|2001|05|23|df=yes}}
| latest release version = 4.3.0<ref name="hibernateHistory">https://hibernate.atlassian.net/browse/HHH#selectedTab=com.atlassian.jira.plugin.system.project%3Aversions-panel</ref>
| latest release date version = {{release date|2013|12|16}}<ref name="hibernateHistory"/>7.0.0.Final
| latest release date = {{Start date and age|2025|05|19}}<ref>{{cite web|url=https://hibernate.org/orm/releases/7.0/|title=Hibernate ORM - 7.0 series |access-date=27 May 2025}}</ref>
| latest preview version =
| latest preview date =
| programming language = [[Java (programming language)|Java]]
| operating system = [[Cross-platform]] ([[JVM]])
| operating system = [[Cross-platform]] ([[JVM]])
| platform = [[Java Virtual Machine]]
| programming language platform = [[Java (programmingVirtual language)|JavaMachine]]
| genre = [[Object-relationalObject–relational mapping]]
| license = [[GNU Lesser General PublicApache License]] 2.0
| website = {{urlURL|httphttps://hibernate.org/orm/}}
}}
 
'''Hibernate ORM''' (Hibernateor insimply short'''Hibernate''') is an [[object-relationalobject–relational mapping]]{{sfn|Bauer|King|Gregory|2015}}{{rp|§1.2.2|p=12}} librarytool for the [[Java (programming language)|Java]] programming language,. It providingprovides a [[Software framework|framework]] for mapping an [[Object-oriented programming|object-oriented]] [[___domain model]] to a traditional [[relational database]]. Hibernate solveshandles [[object-relationalobject–relational impedance mismatch]] problems by replacing direct, [[Persistence (computer science)|persistencepersistent]]-related database accesses with high-level object handling functions.<ref>{{Cite web|url=https://docs.jboss.org/hibernate/orm/7.0/introduction/html_single/Hibernate_Introduction.html|title=A Short Guide to Hibernate 7|website=docs.jboss.org}}</ref>
 
Hibernate is [[free software]] that is distributed under the [[Apache License]]. Versions prior to 7.0.0.Beta4 were distributed under the [[GNU Lesser General Public License]] 2.1.
 
Hibernate's primary feature is mapping from Java classes to [[Table (database)|database tables]], (and mapping from Java data types to [[SQL]] data types). Hibernate also provides data query and retrieval facilities. It generates SQL calls and relieves the developer from the manual result set handling and object conversion. Applicationsof usingthe Hibernateresult are portable to supported SQL databases with little performance overhead {{Citation needed|date=September 2012}}set.
 
==Standards==
 
Hibernate ORM is a certified compatible implementation of the industry-standard [[Jakarta Persistence]]<ref>{{Cite web|url=https://jakarta.ee/specifications/persistence/3.2/|title=Jakarta Persistence 3.2|website=jakarta.ee}}</ref> (formerly Java Persistence API) and Jakarta Data<ref>{{Cite web|url=https://jakarta.ee/specifications/data/1.0/|title=Jakarta Data 1.0|website=jakarta.ee}}</ref><ref>{{Cite web|url=https://docs.jboss.org/hibernate/orm/6.6/repositories/html_single/Hibernate_Data_Repositories.html|title= Introducing Hibernate Data Repositories |website=docs.jboss.org}}</ref> specifications.
 
==Mapping==
MappingThe mapping of Java classes to database tables is accomplishedimplemented throughby the configuration of an [[XML]] file or by using [[Java annotation|Java Annotations]]. When using an XML file, Hibernate can [[Program synthesis|generate]] skeletalskeleton [[source code]] for the persistence classes. This is unnecessaryauxiliary when annotations are used. Hibernate can use the XML file or the Java annotations to maintain the [[database schema]].
 
FacilitiesThere are provided facilities to arrange [[PointOne-to-multipointmany communication(data model)|one-to-many]] and [[Many-to-many (data model)|many-to-many]] relationships between classes are provided.{{sfn|Bauer|King|Gregory|2015}}{{rp|§=7|pp=140–171}} In addition to managing associations between objects, Hibernate can also manage [[Reflexive relation|reflexive]] associations wherewherein an object has a one-to-many relationship with other instances of itsthe own[[Class (computer programming)|class]] [[data type|type]].
 
Hibernate supports the mapping of custom value types. This makes the following scenarios possible:
* Overriding the default SQL type that Hibernate chooses when mapping a column to a property.
* Mapping Java [[Enumerated type|EnumEnums]] to columns as ifthough they were regular properties.{{sfn|Bauer|King|Gregory|2015}}{{rp|§=5.1.7|pp=89–90}}
* Mapping a single property to multiple columns.
 
'''Definition:'''
Objects in an [[Object-oriented programming|object-oriented]] application follow [[object-oriented programming|OOP]] principles, while objects in the back-end follow [[database normalization]] principles, resulting in different representation requirements. This problem is called "[[object–relational impedance mismatch]]". Mapping is a way of resolving the object–relational impedance mismatch problem.
 
Mapping informs the ORM tool of what Java class object to store in which database table.
 
==Hibernate Query Language (HQL)==
Hibernate provides a [[SQL]] inspired language called Hibernate Query Language<ref>{{Cite web|url=https://docs.jboss.org/hibernate/orm/7.0/querylanguage/html_single/Hibernate_Query_Language.html|title=A Guide to Hibernate Query Language|website=docs.jboss.org}}</ref> (HQL) for writing SQL-like queries against Hibernate's data objects. ''Criteria Queries'' are provided as an [[Object-oriented programming|object-oriented]] alternative to HQL. Criteria Query is used to modify the objects and provide the restriction for the objects.{{sfn|Bauer|King|Gregory|2015}}{{rp|§=14.1.1|p=347–349}}
HQL (Hibernate Query Language) is the object-oriented version of SQL. It generates database independent queries so that there is no need to write database-specific queries. Without this capability, changing the database would require individual SQL queries to be changed as well, leading to maintenance issues.
 
==Persistence==
Hibernate provides transparent persistence for [[Plain Old Java Object]]s (POJOs).{{sfn|Bauer|King|Gregory|2015}}{{rp|§=3.2.2|pp=37–38}} The only strict requirement for a persistent class is a [[Nullary constructor|no-argument constructor]],{{sfn|Bauer|King|Gregory|2015}}{{rp|§=3.2.3|pp=39}} though not necessarily '''{{code|public}}'''. Proper behavior in some applications also requires special attention to the ''{{Javadoc|module=java.base|package=java.lang|class=Object|member=equals(java.lang.Object)''|text=equals(Object obj)|monotype=y}} and ''{{Javadoc|module=java.base|package=java.lang|class=Object|member=hashCode()''|text=hashCode()|monotype=y}} methods in the {{code|Object}} classes.<ref>{{cite web|title=Equals and HashCode|url=https://community.jboss.org/wiki/EqualsAndHashCode|publisher=JBoss Community|access-date=2013-12-16|archive-date=2013-12-16|archive-url=https://web.archive.org/web/20131216104403/https://community.jboss.org/wiki/EqualsAndHashCode|url-status=dead}}</ref> Hibernate recommends providing an identifier attribute, and this is planned to be a mandatory requirement in a future release.<ref>{{cite web|title=Hibernate User Guide: 2.5.5. Provide identifier attribute|url=http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#entity-pojo-identifier|publisher=JBoss Community}}</ref>
 
Collections of data objects are typically stored in Java collection objectsclasses, such as implementations of the {{Javadoc|module=java.base|package=java.util|class=Set|text=Set|monotype=y}} and {{Javadoc|module=java.base|package=java.util|class=List|text=List|monotype=y}} interfaces. [[Generics in Java|Java generics]], introduced in Java 5, are also supported. Hibernate can be configured to [[lazy load]] associated collections.{{sfn|Bauer|King|Gregory|2015}}{{rp|§=12.1|pp=289–293}} Lazy loading is the default as of Hibernate 3.
 
Related objects can be configured to ''[[Propagation constraint|cascade]]'' operations from one object to the other. For example, a parent {{code|Album}} class object can be configured to cascade its {{code|save}} and/or {{code|delete}} operationoperations to its child {{code|Track}} objects. This can reduce development time and ensure [[referential integrity]]. A ''dirty checking'' feature avoids unnecessary database write actions by performing SQL updates only on the modified fields of persistentclass objects.
 
==Hibernate Query Language (HQL)==
Hibernate provides an [[SQL]] inspired language called [[Hibernate Query Language]] (HQL) which allows SQL-like queries to be written against Hibernate's data objects. ''Criteria Queries'' are provided as an [[Object-oriented programming|object-oriented]] alternative to HQL.Criteria Query is used to modify the objects and provide the restriction for the objects.
swapnil
 
==Integration==
Hibernate can be used both in standalone [[Java (programming language)|Java]] applications and in [[Java EE]] applications using [[Java Servlet|servlets]], [[Enterprise JavaBeans|EJB]] session beans, and [[Java Business Integration|JBI]] service components. It can also be included as a feature in other programming languages. For example, [[Adobe Systems|Adobe]] integrated Hibernate into version 9 of [[ColdFusion]] (which runs on J2EE app servers) with an abstraction layer of new functions and syntax added into [[CFML]].
 
==Entities and components==
In Hibernate [[jargon]], an ''entity'' is a stand-alone object in Hibernate's [[Persistence (computer science)|persistent]] mechanism which can be manipulated independently of other objects.{{sfn|Bauer|King|Gregory|2015}}{{rp|§=4.2|pp=62–74}} In contrast, a ''component'' is subordinate to otheran entitiesentity and can be manipulated only with respect to otherthat entitiesentity. For example, an Album object may represent an entity; but the Tracks object associated with the Album objects would represent a ''component'' of the Album entity, if it is assumed that Tracks can only be saved or retrieved from the database through the Album object. Unlike J2EE, itHibernate can switch databases.
 
== History ==
 
==History==
Hibernate was started in 2001 by [[Gavin King (Developer)|Gavin King]] with colleagues from Cirrus Technologies as an alternative to using EJB2-style entity beans. Its original goal was to offer better persistence capabilities than offered by EJB2 by simplifying the complexities and supplementing missing features.
Hibernate was started in 2001 by Gavin King with colleagues from Cirrus Technologies as an alternative to using EJB2-style entity beans. The original goal was to offer better persistence capabilities than those offered by EJB2; by simplifying the complexities and supplementing certain missing features.
 
In early 2003, the Hibernate development team began Hibernate2 releases, which offered many significant improvements over the first release.
Line 57 ⟶ 67:
[[JBoss (company)|JBoss, Inc.]] (now part of [[Red Hat]]) later hired the lead Hibernate developers in order to further its development.
 
In 2005, Hibernate version 3.0 was released. Key features included a new Interceptor/Callback architecture, user defined filters, and JDK 5.0 [[Java annotation|Annotations]] (Java's [[metadata]] feature). {{As of | 2010}}, Hibernate 3 (version 3.5.0 and up) was a certified implementation of the [[Java Persistence API#JPA_2JPA 2.0|Java Persistence API 2.0]] specification via a wrapper for the Core module which provides conformity with the [http://jcp.org/en/jsr/detail?id=317 JSR 317] standard.<ref>{{cite web|title=Hibernate 3.5.0-Final release|date=April 2010 |url=http://in.relation.to/Bloggers/Hibernate350FinalRelease|publisher=In Relation To...}}</ref>
 
In Dec 2011, Hibernate Core 4.0.0 Final was released. This includes new features such as [http://docs.jboss.org/hibernate/orm/5.3/userguide/html_single/Hibernate_User_Guide.html#multitenacy multi-tenancy] support, introduction of ServiceRegistry (a major change in how Hibernate builds and manages "services"), better Sessionsession opening from SessionFactory, improved integration via ''org.hibernate.integrator.spi.Integrator'' and auto discovery, [[Internationalization_and_localizationInternationalization and localization|internationalization]] support and, message codes in logging, and a clearermore splitdistinction between the API, SPI andor implementation classes.<ref>{{Cite web|url=http://www.hibernate.org/orm/downloadsreleases/|title=Releases - Hibernate ORM|website=hibernate.org}}</ref>
 
In DecDecember 2012, Hibernate ORM 4.1.9 Final was released.<ref>{{Cite web |url=http://in.relation.to/23792.lace |title=In Relation To... Hibernate ORM 4.1.9.Final Released |access-date=2012-12-13 |archive-url=https://web.archive.org/web/20130129164633/http://in.relation.to/23792.lace |archive-date=2013-01-29 |url-status=dead }}</ref>
 
In Mar 2013, Hibernate ORM 4.2 Final was released.<ref>{{Cite web |url=http://grepcode.com/snapshot/repository.jboss.org/nexus/content/repositories/releases/org.hibernate/hibernate-core/4.2.0.Final |title=GC: Hibernate-core-4.2.0.Final.jar - GrepCode Java Project Source |access-date=2014-11-27 |archive-url=https://web.archive.org/web/20141205114143/http://grepcode.com/snapshot/repository.jboss.org/nexus/content/repositories/releases/org.hibernate/hibernate-core/4.2.0.Final |archive-date=2014-12-05 |url-status=dead }}</ref>
In 2012, development was started on Hibernate 5. It will contain JPA 2.1 support {{Citation needed|date=June 2013}}.
 
In December 2013, Hibernate ORM 4.3.0 Final was released.<ref>{{Cite web |url=http://grepcode.com/snapshot/repository.jboss.org/nexus/content/repositories/releases/org.hibernate/hibernate-core/4.3.0.Final |title=GC: Hibernate-core-4.3.0.Final.jar - GrepCode Java Project Source |access-date=2014-11-27 |archive-url=https://web.archive.org/web/20141205112808/http://grepcode.com/snapshot/repository.jboss.org/nexus/content/repositories/releases/org.hibernate/hibernate-core/4.3.0.Final |archive-date=2014-12-05 |url-status=dead }}</ref> It features [[Java Persistence API#JPA 2.1|Java Persistence API 2.1]].
== Application programming interface ==
 
In September 2015, Hibernate ORM 5.0.2 Final was released. It has improved bootstrapping, hibernate-java8, hibernate-spatial, Karaf support.
The Hibernate API is provided in the [[Java package]] [http://docs.jboss.org/hibernate/stable/core/javadocs/index.html?overview-summary.html org.hibernate].
 
In November 2018, Hibernate ORM 5.1.17 Final was released. This is the final release of the 5.1 series.
=== [http://docs.jboss.org/hibernate/stable/core/javadocs/org/hibernate/SessionFactory.html org.hibernate.SessionFactory] interface ===
 
In October 2018, Hibernate ORM 5.3 Final was released. It featured [[Java Persistence API#JPA 2.2|Java Persistence API 2.2]] inheritance caching.
=== [http://docs.jboss.org/hibernate/stable/core/javadocs/org/hibernate/Session.html org.hibernate.Session] interface ===
 
In December 2018, Hibernate ORM 5.4.0 Final was released.<ref>{{Cite web|url=http://hibernate.org/orm/releases/|title=Releases - Hibernate ORM|website=hibernate.org}}</ref>
Represents a Hibernate session, i.e., the main point of the manipulation performed on the database entities. The latter activities include (among the other things) managing the persistence state ([[Transient (computer programming)|transient]], [[Java Persistence API|persisted]], detached{{Clarify|date=June 2011}}) of the objects, fetching the persisted ones from the database and the management of the transaction demarcation{{Clarify|date=June 2011}}.
 
In March, 2022, Hibernate ORM 6.0.0 Final was released,<ref>{{Cite web|url=https://in.relation.to/2022/03/31/orm-60-final/|website=hibernate.org|title=Hibernate 6.0 Final|language=en}}</ref> a "major redesign [which] has touched almost every subsystem of Hibernate, including the APIs, mapping annotations, and the query language".<ref>{{Cite web|url=https://docs.jboss.org/hibernate/orm/6.6/introduction/html_single/Hibernate_Introduction.html#preface|title=An Introduction to Hibernate 6|website=docs.jboss.org}}</ref>
A session is intended to last as long as the logical transaction on the database. Due to the latter feature, Session implementations are not expected to be threadsafe nor to be used by multiple clients.
 
In October 2022, Hibernate ORM 6.1.4 Final was released.<ref>{{Cite web |last=Boriero |first=Andrea |title=Hibernate ORM 6.1.4.Final released |url=https://in.relation.to/2022/10/05/hibernate-orm-614-final/ |access-date=2022-10-11 |website=In Relation To |date=5 October 2022 |language=en}}</ref>
== Software components ==
 
In May 2025, Hibernate ORM 7.0.0 Final was released,<ref>{{Cite web|url=https://in.relation.to/2025/05/20/hibernate-orm-seven/|title=Hibernate 7 (and Hibernate Validator 9)|website=In Relation To}}</ref> with support for Jakarta Persistence 3.2 and Jakarta Data 1.0.
 
==Application programming interface==
 
The Hibernate API is provided in the [[Java package]] {{code|org.hibernate}}.<ref>{{Cite web|url=https://docs.jboss.org/hibernate/stable/core/javadocs/index.html?overview-summary.html|title=Hibernate JavaDocs|website=docs.jboss.org}}</ref>
 
===org.hibernate.SessionFactory interface===
The {{code|org.hibernate.SessionFactory}} interface is the native equivalent version of the JPA's standard {{code|EntityManagerFactory}}.{{sfn|Bauer|King|Gregory|2015}}{{rp|§=2.3|p=26}}
 
===org.hibernate.Session interface===
 
The {{code|org.hibernate.Session}} interface<ref>{{Cite web|url=https://docs.jboss.org/hibernate/stable/core/javadocs/org/hibernate/Session.html|title=Session (Hibernate JavaDocs)|website=docs.jboss.org}}</ref> represents a Hibernate session, i.e., the main point of the manipulation performed on the database entities. The latter activities include (among the other things) managing the persistence state ([[Transient (computer programming)|transient]], [[Java Persistence API|persisted]], detached{{Clarify|date=June 2011}}) of the objects, fetching the persisted ones from the database and the management of the transaction demarcation{{Clarify|date=June 2011}}.
 
A {{code|Session}} is intended to last as long as the logical transaction on the database. Due to the latter feature, {{code|Session}} implementations are not expected to be thread safe nor to be used by multiple clients.
 
==Software components==
The Hibernate software includes the following components:<ref>{{cite web|title=Hibernate: Relational Persistence for Java and .NET|url=http://www.hibernate.org/|publisher=JBoss Community}}</ref>
* Hibernate ORM (known as Hibernate Core before release 4.1<ref>{{cite web|title=Hibernate ORM 4.1.0 Release|date=9 February 2012 |url=http://in.relation.to/Bloggers/HibernateORM410Release|publisher=JBoss Community}}</ref>) – the base software for an object-relationalobject–relational mapping solution for Java environments<ref>{{cite web|title=HIBERNATE - Relational Persistence for Idiomatic Java|url=http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html/|publisher=JBoss Community}}</ref>
* Hibernate Annotations (merged into Hibernate Core/ORM since version 3.6<ref>{{cite web|title=No more hibernate-annotations module|date=5 April 2012 |url=http://in.relation.to/Bloggers/NoMoreHibernateannotationsModule|publisher=JBoss Community}}</ref>) – metadata that governs the transformation of data between the object-oriented model and the relational database model according to the JSR 317 [[Java Persistence API]] (JPA 2)<ref>{{cite web|title=Hibernate Annotations|url=http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/|publisher=JBoss Community}}</ref>
* Hibernate EntityManager (merged into Hibernate Core/ORM since version 5.2<ref>{{cite web|title=hibernate-entitymanager merged into hibernate-core|url=https://github.com/hibernate/hibernate-orm/wiki/Migration-Guide---5.2#hibernate-entitymanager-merged-into-hibernate-core|publisher=JBoss Community}}</ref>)– together with Hibernate Annotations, a wrapper that implements a JSR 317 [[Java Persistence API]] (JPA 2) persistence solution on top of Hibernate Core<ref>{{cite web|title=Hibernate EntityManager|url=http://docs.jboss.org/hibernate/entitymanager/3.6/reference/en/html_single/|publisher=JBoss Community}}</ref>
* Hibernate Envers – auditing and versioning of persistent classes<ref>{{cite web|title=Hibernate Envers – Easy Entity Auditing|url=http://docs.jboss.org/hibernate/envers/3.6/reference/en-US/html_single/|publisher=JBoss Community}}</ref>
* Hibernate OGM (Object/Grid Mapper) – an extension to store data in a [[NoSQL]] store<ref>{{cite web|title=Hibernate OGM|url=http://hibernate.org/ogm/|publisher=JBoss Community}}</ref>
* Hibernate Shards – [[PartitionShard (database architecture)|horizontal partitioning]] for multiple relational databases<ref>{{cite web|title=Hibernate Shards|url=http://www.hibernate.org/subprojects/shards.html|publisher=JBoss Community}}</ref>
** While Hibernate Shards is not compatible with 4.x releases of Hibernate Core, some of the Shards capability was integrated into Core in the 4.0 release
* Hibernate Search – integrates the full text library functionality from [[Apache Lucene]] in the Hibernate and JPA model<ref>{{cite web|title=Hibernate Search|url=http://www.hibernate.org/search/|publisher=JBoss Community}}</ref>
* Hibernate Tools – a set of tools implemented as a suite of [[Eclipse (software)|Eclipse]] plugins and [[Ant (software)|Ant]] tasks included in [[JBoss Developer Studio]]<ref>{{cite web|title=Hibernate Tools for Eclipse and Ant|url=http://www.hibernate.org/tools/|publisher=JBoss Community}}</ref>
* Hibernate Validator – the [[reference implementation]] of JSR 303 [[Bean Validation]]<ref>{{cite web|title=Hibernate Validator|url=http://www.hibernate.org/validator/|publisher=JBoss Community}}</ref>{{sfn|Bauer|King|Gregory|2015}}{{rp|§=3.3.2|pp=49–51}}
* Hibernate Metamodel Generator – an annotation processor that creates JSR 317 [[Java Persistence API]] (JPA 2) static metamodel classes using the JSR 269 [[Metadata facility for Java|Pluggable Annotation Processing API]]<ref>{{cite web|title=Hibernate Metamodel Generator|url=http://www.hibernate.org/subprojects/jpamodelgen.html|publisher=JBoss Community}}</ref>
* [[NHibernate]] – an object-relationalobject–relational mapping solution for the [[.NET Framework]]<ref>{{cite web|title=NHibernate|url=http://nhforge.org/|publisher=NHibernate Forge|access-date=2011-04-26|archive-url=https://archive.today/20120712170138/http://nhforge.org/|archive-date=2012-07-12|url-status=dead}}</ref>
 
== See also ==
{{Portal|Free and open-source software|JavaComputer programming}}
* [[List of JBoss software]]
* [[List of object–relational mapping software]]
* [[pureQuery]]
* [[EJB]] 3.0
* [[NHibernate]]
* [[Serialization]]
* [[MyBatis]]
* [[iBATIS]]
* [[Service Data Object]]
* [[QuickDB ORMMySQL]]
* [[Apache Cassandra]]
* [[Java Object Oriented Querying|jOOQ]]
* [[Spring Framework]]
* [[List of object-relational mapping software]]
* [[MyBatis]]
 
==References==
Line 112 ⟶ 137:
{{Refbegin|35em}}
*{{citation
| first1 = JeffAnanda
| last1 = Linwood
| first2 = Dave
| last2 = Minter
| date = May 28, 2010
| title = Beginning Hibernate
| edition = Second
| publisher = [[Apress]]
| pages = 400
| isbn = 978-1-4302-2850-49
| url = http://www.apress.com/book/view/9781430228509
|access-date = September 4, 2010
|archive-url = https://web.archive.org/web/20101205163340/http://www.apress.com/book/view/9781430228509
|archive-date = December 5, 2010
|url-status = dead
}}
*{{citation
Line 134 ⟶ 163:
| publisher = [[Manning Publications]]
| pages = 488
| isbn = 978-1-933988-64-91
| url =
}}
*{{citation
| first1 = James
| last1 = Elliott
| first2 = Tim
| last2 = O'Brien
| date = April 22, 2008
| title = Harnessing Hibernate
| edition = First
| publisher = [[O'Reilly Media]]
| pages = 380
| isbn = 978-0-596-51772-64
| url = http://oreilly.com/catalog/9780596517724/
}}
* {{cite book | last1=Bauer | first1=Christian | last2=King | first2=Gavin | last3=Gregory | first3=Gary | title=Java Persistence with Hibernate | publisher=[[Manning Publications]] | date=November 8, 2015 | isbn=978-1-61729-045-9}}
*{{citation
| first1 = GavinJeff
| last1 = KingLinwood
| first2 = BauerDave
| last2 = ChristianMinter
| date = NovemberAugust 2425, 2006
| title = Java Persistence with= Beginning Hibernate: From Novice to Professional
| edition = SecondThird
| publisher = [[Manning PublicationsApress]]
| pages = 880360
| isbn = 1-93239459059-88693-5
|url = http://www.apress.com/book/view/9781590596937
| url =
|access-date = April 24, 2009
|archive-url = https://web.archive.org/web/20101224001209/http://www.apress.com/book/view/9781590596937
|archive-date = December 24, 2010
|url-status = dead
}}
*{{citation
| first1 = JeffDave
| last1 = LinwoodMinter
| first2 = DaveJeff
| last2 = MinterLinwood
| date = AugustJune 2527, 20062005
| title = BeginningPro Hibernate: From Novice to Professional3
| edition = ThirdFirst
| publisher = [[Apress]]
|pages = [https://archive.org/details/prohibernate30000mint/page/242 242]
| pages = 360
| isbn = 1-59059-693511-54
| url = httphttps://wwwarchive.apress.comorg/details/bookprohibernate30000mint/viewpage/9781590596937242
}}
*{{citation
| first1 = Dave
| last1 = Minter
| first2 = Jeff
| last2 = Linwood
| date = June 27, 2005
| title = Pro Hibernate 3
| edition = First
| publisher = [[Apress]]
| pages = 242
| isbn = 1-59059-511-4
| url = http://www.apress.com/book/view/1590595114
}}
*{{citation
| first = Will
| last = Iverson
| date = December 2, 2004
| title = Hibernate: A J2EE Developer's Guide
| edition = First
| publisher = [[Addison Wesley]]
| pages = [https://archive.org/details/hibernatej2eedev0000iver/page/384 384]
| isbn = 0-321-26819-9
| url = https://archive.org/details/hibernatej2eedev0000iver/page/384
| url =
}}
*{{citation
| first1 = Eric
| last1 = Pugh
| first2 = Joseph D.
| last2 = Gradecki
| date = October 8, 2004
| title = Professional Hibernate (Programmer to Programmer)
| edition = First
| publisher = [[Wrox Press|Wrox]]
| pages = 456
| isbn = 0-7645-7677-1
| url = http://p2p.wrox.com/book-professional-hibernate-148/
|access-date = April 26, 2009
|archive-date = April 4, 2009
|archive-url = https://web.archive.org/web/20090404004432/http://p2p.wrox.com/book-professional-hibernate-148/
|url-status = dead
}}
*{{citation
|last1 first1 = GavinBauer
| last1 first1 = KingChristian
|last2 first2 = BauerKing
| last2 first2 = ChristianGavin
| date = August 1, 2004
| title = Hibernate In Action
| edition = Second
| publisher = [[Manning Publications]]
|pages = [https://archive.org/details/hibernateinactio00baue/page/400 400]
| pages = 400
| isbn = 1-932394-15-X
|url = https://archive.org/details/hibernateinactio00baue/page/400
| url =
}}
*{{citation
| first = Elliott
| last = James
| date = May 10, 2004
| title = Hibernate: A Developer's Notebook
| edition = First
| publisher = [[O'Reilly Media]]
|pages = [https://archive.org/details/hibernatedevelop00elli/page/190 190]
| pages = 190
| isbn = 0-596-00696-9
| url = httphttps://oreillyarchive.comorg/details/cataloghibernatedevelop00elli/9780596006969page/190
}}
{{Refend}}
 
==External links==
* {{Official website|httphttps://www.hibernate.org/}}
* {{GitHub|hibernate}}
*[http://www.javafree.org/artigo/871462/Interview-with-Gavin-King-founder-of-Hibernate.html Interview with Gavin King, founder of Hibernate]
*[http://docs.jboss.org/hibernate/stable/core/manual/en-US/html/ Hibernate Reference Documentation]
*[http://dev.wavemaker.com/forums/?q=node/3232 Hibernate and HQL Query Tutorial]
*[http://code.google.com/p/scale4j/ scale4j is highly scalable ___domain oriented data-distributed platform for java built on top of hibernate]
*[http://www.lalitbhatt.com/tiki-index.php?page=Hibernate Hibernate Tutorial]
* [http://torpedoquery.org TorpedoQuery - Type safe Hibernate query builder ]
 
{{Jakarta Persistence}}
===Further reading===
{{Java (software platform)}}
*[http://www.javatips.net/blog/2011/12/hibernate-tutorial Hibernate Tutorial]
*[http://www.javatips.net/blog/2011/12/hibernate-annotations-tutorial Hibernate Annotations Tutorial]
*[http://www.javatips.net/blog/2012/12/java-persistence-jpa-2-0-tutorial-with-hibernate Java Persistence (JPA 2.0) Tutorial With Hibernate]
 
{{Authority control}}
{{Java Persistence API}}
{{Java (Sun)}}
 
[[Category:Object-relationalObject–relational mapping]]
[[Category:Java platform]]
[[Category:Java enterprise platform]]
[[Category:Red Hat software]]
[[Category:Cross-platform software]]
[[Category:Persistence frameworks]]
[[Category:Software using the GNU Lesser General Public License]]
[[Category:Cross-platform free software]]