Hibernate (library)
Material from Wikipedia the free encyclopedia
The current version of the page has not yet been checked by experienced participants and may differ significantly from the version checked on June 7, 2014; checks require 18 edits.
The current version of the page has not yet been checked by experienced participants and may differ significantly from the version checked on June 7, 2014; checks require 18 edits.
Go to: navigation, Search
This term has other meanings, see Hibernate.
Hibernate Object Relational Mapping Type
Red Hat Developer
Written in Java
Java Virtual Machine Hardware Platform
The latest version is 4.3.10 Final (May 15, 2015)
Test version of ORM 5.0.0.
CR1[1] (May 28, 2015)
GNU Lesser General Public License
Website hibernate.org
Hibernate is a library for the Java programming language designed to solve object relational mapping (ORM) problems.
It is free and open source software distributed under the terms of the GNU Lesser General Public License.
This library provides an easy to use framework for mapping an object oriented data model to traditional relational databases.
Content
1 Main Features 2 Mapping 3 Persistence 4 Hibernate Query Language (HQL) 5 Integration 6 Components 7 History 8 Literature 9 Analogues on other platforms 10 See also 11 Notes 12 References
Main features[edit / edit wiki text]
The goal of Hibernate is to free the developer from a significant amount of relatively low level programming to ensure the storage of objects in a relational database.
A developer can use Hibernate both in the process of designing a system of classes and tables "from scratch", and to work with an existing database.
Hibernate not only solves the problem of linking Java classes with database tables (and Java data types with SQL data types), but also provides tools for automatically generating and updating a set of tables, building queries and processing the received data, and can significantly reduce the development time that is usually spent on manually writing SQL and JDBC code.
Hibernate automates the generation of SQL queries and frees the developer from manual processing of the resulting data set and object transformation, making it as easy as possible to transfer (port) the application to any SQL databases.
Hibernate provides transparent data persistence support for "POJO" (that is, for standard Java objects); the only strict requirement for a stored class is the presence of a default constructor (without parameters).
For correct behavior in some applications, you also need to pay attention to the equals() and hashCode () methods[2].
Mapping (mapping, projection) Java classes with database tables are implemented using XML configuration files or Java annotations.
When using an XML file, Hibernate can generate a skeleton of the source code for long term storage classes (persistent).
This is not necessary if an annotation is used.
Hibernate can use an XML file or annotations to support the database schema.
It provides opportunities for organizing the relationship between the "one to many" and "many to many" classes.
In addition to managing relationships between objects, Hibernate can also manage reflexive relationships, where an object has a one - to many relationship with other instances of its own data type.
Hibernate supports displaying custom value types.
Overriding the default SQL type, Hibernate selects when displaying the properties column.
Projecting the Java enumerated type onto the DB field as if they are ordinary properties.
Projecting a single property into several columns.
Persistence[edit / edit wiki text]
Collections of data objects are usually stored as collections of Java objects, such as a set and a list.
Generic classes (Generics) introduced in Java 5 are supported.
Hibernate can be configured for "lazy" (deferred) collection downloads.
Deferred downloads are the default option starting with Hibernate 3.
Related objects can be configured for cascading operations.
For example, the parent class, Album, can be configured to cascade save and / or delete its child Track.
This can reduce development time and ensure integrity.
The dirty checking function allows you to avoid unnecessary recording of actions in the database by performing SQL updates only when the fields of persistent objects are changed.
The success of the Hibernate library prompted JCP to develop the JDO specification, which became one of the standard ORM technologies on the JavaEE platform.
Hibernate is also compatible with JSR 220/317 and provides standard JPA tools.
Hibernate Query Language (HQL)[edit / edit wiki text]
Hibernate provides the use of an SQL like language, the Hibernate Query Language (HQL), which allows you to execute SQL like queries written next to Hibernate data objects.
Criteria queries are provided as an Object oriented alternative to HQL.
Integration[edit / edit wiki text]
Hibernate can be used both in standalone Java applications and in Java EE programs running on the server (for example, a servlet or EJB components).
It can also be included as an additional feature to other programming languages.
For example, Adobe integrated Hibernate into the ninth version of ColdFusion (running on servers with support for J2EE applications) with an abstraction layer of new functions and syntax attached to CFML.
Components[edit / edit wiki text]
Hibernate ORM (before version 4.1, it was called Hibernate Core[3]) — the Hibernate core, its own API, xml mapping (mapping) of object metadata (support for metadata in the form of annotations since version 3.6)[4] Hibernate Annotations (since version 3.6 merged with Hibernate Core/ORM) — mapping using JDK 5.0 annotations, both standard for JPA and native extensions[5] Hibernate EntityManager — implementation of the Java Persistence API for Java SE and Java EE[6] Hibernate Envers — audit of persistent classes[7] Hibernate OGM — Object/Grid Mapper — extension for storing data in NoSQL storage[8] Hibernate Shards — a framework for sharding (a kind of horizontal scaling, that is, splitting databases into sections on some basis) [9]
Hibernate Validator annotations and API for verifying the correctness and integrity of data Hibernate Search integration of Hibernate with the Lucene search engine, for the purpose of indexing and searching data Hibernate Tools development tools for Eclipse and Ant Hibernate Metamodel Generator annotation handler that creates classes of the static metamodel JSR 317 Java Persistence API (JPA 2), using the JSR 269 Pluggable Annotation Processing API[10]
History[edit / edit wiki text]
July 2002 version 1.0 June 2003 version 2.0 March 31, 2005 version 3.0 October 16, 2006 — Hibernate Core, Annotations, Entity Manager 3.2.0.GA -JPA support In December 2013, Hibernate ORM 4.3.0 was released.
Work is underway on 5.0.
Literature[edit / edit wiki text]
Elliott, James.
Hibernate: A Developer's Notebook.
— 1st ed. — O'Reilly Media, 2004, May 10.
— 190 p.
— ISBN 0-596-00696-9, ISBN 978-0-596-55653-2 (e book), ISBN 0-596-55653-5 (e book).
One of the first books on Hibernate, written by an experienced developer from Singlewire Software, who worked with object oriented technologies long before it became popular[11].
Bauer, Christian, King, Gavin.
Hibernate In Action.
— 1st ed. — Greenwich: Manning Publications, 2004, August 1.
— 408 p.
— (In Action).
— ISBN 1-932394-15 X, ISBN 978-1-932394-15-3.
Christian Bauer is a member of the Hibernate development team, Gavin King is the founder of the Hibernate project, a member of the EJB 3.0 Expert group (JSR 220), a leader in the development of the Web Beans JSR 299 standard, which includes the concepts of Hibernate, JSF and EJB 3.0.
The book describes the outdated version of Hibernate 2.
x. It is considered one of the best according to critics [12]
Bauer, Christian, King, Gavin.
Java Persistence with Hibernate / Foreword by Linda DeMichiel.
— 1st ed. — Greenwich: Manning Publications, 2006, November 24.
— 904 p.
— ISBN 1-932394-88-5, ISBN 978-1-932394-88-7.
In fact, this is an updated and revised version of the book "Hibernate in Action", it describes Hibernate 3.
x and JPA.
The second edition of this book, describing Hibernate 5, is scheduled for release in early 2015 (individual chapters have been posted in electronic form since March 2013)[13]
Linwood, Jeff, Minter, Dave.
Beginning Hibernate: From Novice to Professional.
— 3rd ed. — Apress, 2006, August 25.
— 360 p.
— ISBN 1-59059-693-5.
Linwood, Jeff, Minter, Dave.
Beginning Hibernate.
— 2nd ed. — Apress, 2010, May 28.
— 400 p.
— ISBN 1-4302-2850-4.
Elliott, James, O'Brien, Timothy M., Fowler, Ryan.
Harnessing Hibernate.
— 1st ed. — O'Reilly Media, 2008, April 22.
— 382 p.
— ISBN 978-0-596-51772-4, ISBN 0-596-51772-6, ISBN 978-0-596-15948-1 (e book), ISBN 0-596-15948 X (e book).
Bernard, Emmanuel, Griffin, John.
Hibernate Search in Action.
— 1st ed. — Manning Publications, 2008, December 30.
— 488 p.
— (In Action).
— ISBN 1-933988-64-9.
Analogues on other platforms[edit / edit wiki text]
NHibernate is a similar solution for the platform .NET
See also[edit / edit wiki text]
There is a wikiuchebnik on the topic
"Java Persistence (English)"
Serialization of Enterprise JavaBeans 3.0 NHibernate a port of Hibernate to the platform .NET MyBatis iBATIS JPA EclipseLink
Notes[edit / edit wiki text]
↑ Hibernate ORM 5.0.0.
CR1 ↑ Recommendations for using the equals() and hashCode() methods in Hibernate(unavailable link history).
Checked on August 20, 2009.
Archived from the original source on December 6, 2003.
↑ About the reason for the name change Hibernate Core -> Hibernate ORM ↑ HIBERNATE Relational Persistence for Idiomatic Java.
JBoss Community.
Archived from the original source on February 17, 2012.
↑ Hibernate Annotations.
JBoss Community.
Archived from the original source on February 17, 2012.
↑ Hibernate EntityManager.
JBoss Community.
Archived from the original source on February 17, 2012.
↑ Hibernate Envers – Easy Entity Auditing.
JBoss Community.
Archived from the original source on February 17, 2012.
↑ Hibernate OGM.
JBoss Community.
Archived from the original source on February 17, 2012.
Glover, Andrew.
Java development 2.0: The second Wave of Java Application Development: Sharding using Hibernate Shards (February 27, 2012).
Archived from the original source on July 19, 2013.
↑ Hibernate Metamodel Generator.
JBoss Community.
Archived from the original source on February 17, 2012.
↑ James Elliott at O’Reilly ↑ Hibernate In Action on Amazon ↑ Java Persistence with Hibernate, Second Edition.
Christian Bauer, Gavin King, and Gary Gregory
Links[edit / edit wiki text]
Official website of Hibernate (English) Article "Reference Documentation on Hibernate" (Rus.)
Java Persistence API Cayenne · DataNucleus · EasyBeans · EclipseLink · Hibernate · TopLink · OpenEJB · OpenJPA
Java Platforms
Java Card • Java ME • Java SE • Java EE
Sun Technologies
Java • Java Development Kit • OpenJDK • WTK • Java Virtual Machine • JavaFX • JAXP • Squawk
The main third party technologies
GNU Classpath • GNU compiler for Java • Kaffe • TopLink • Apache Harmony • Apache Struts • Spring Framework • Dalvik • Hibernate • JBoss • Processing • Dozer • AspectJ
History
Java Version History • Criticism of Java • Java Community Process • Sun Microsystems • Free Java Implementations
Language Properties
Bytecode • Syntax • Memory Model • Applets • Servlets • Midlets • JavaServer Pages • Web Start • Enterprise JavaBeans
Scripting languages
Java Tcl • Jython • JRuby • BeanShell • Groovy • Judoscript • Sleep • Bean Scripting Framework • Yoix • Rhino
Java Conferences
JavaOne • Joker • JPoint
Source — "https://ru.wikipedia.org/w/index.php?title=Hibernate_(library)&oldid=72322045»
Categories: Software alphabetically Java Data Access Interfaces Enterprise Edition Java Libraries
Hidden categories: Wikipedia:Articles with non working links Wikipedia:Articles with redefinition of the value from Wikidata Wikipedia:Articles about programs without screenshots
Navigation
Personal Tools
You did not introduce yourself to the system Discussion Contribution Create an account Log in
Namespaces
Article Discussion
Variants
Views
Read Current version Edit Edit wiki text History
More
Search
Navigation
Title Page Heading Index A Z Selected articles Random article Current Events
Participation
Report a bug Community Portal Forum Recent edits New pages Help Donations
Tools
Links Here Related Edits Special Pages Permanent Link Page Information Wikidata element Quote Page
Print/Export
Create a book Download as PDF Printable version
In other languages
العربية Català Čeština Deutsch Ελληνικά English Español Eesti فارسی Français עברית Magyar Italiano 日本本 Қ Қ Қ Kazakh Mongol Nederlands Polski Português Türkçe Ukrainka 中文
Edit links
Last modified on this page: 21: 50, July 23, 2015.
The text is available under the Creative Commons Attribution ShareAlike license; in some cases, additional conditions may apply.
For more information, see Terms of use.
Wikipedia® is a registered trademark of the non profit organization Wikimedia Foundation, Inc.
Contact us
Privacy Policy Wikipedia Description Disclaimer Developers Mobile Version
