Hibernate

Hibernate
Desenvolvedor Red Hat
Lançamento 2001 (22–23 anos)
Versão estável 5.2.13 (6 de fevereiro de 2018; há 6 anos)
Sistema operacional Multiplataforma
Gênero(s) Mapeamento objeto-relacional
Licença LGPL
Página oficial www.hibernate.org

O Hibernate é um framework para o mapeamento objeto-relacional escrito na linguagem Java, mas também é disponível em .Net com o nome NHibernate. Este framework facilita o mapeamento dos atributos entre uma base tradicional de dados relacionais e o modelo objeto de uma aplicação, mediante o uso de arquivos (XML) ou anotações Java (veja Annotation (java)).

Hibernate é um software livre de código aberto distribuído com a licença LGPL.

Características

O objetivo do Hibernate é diminuir a complexidade entre os programas Java, baseado no modelo orientado a objeto, que precisam trabalhar com um banco de dados do modelo relacional (presente na maioria dos SGBDs). Em especial, no desenvolvimento de consultas e atualizações dos dados.

Sua principal característica é a transformação das classes em Java para tabelas de dados (e dos tipos de dados Java para os da SQL). O Hibernate gera as chamadas SQL e libera o desenvolvedor do trabalho manual da conversão dos dados resultante, mantendo o programa portável para quaisquer bancos de dados SQL, porém causando um pequeno aumento no tempo de execução.

Nas questões relacionadas para o gerenciamento de transações e na tecnologia de acesso à base de dados são de responsabilidade de outros elementos na infraestrutura do programa. Apesar de existirem API no Hibernate para possuir operações de controle transacional, ele simplesmente delegará estas funções para a infraestrutura na qual foi instalada.

No caso de aplicações construídas para serem executadas em servidores de aplicação, o gerenciamento das transações é realizado segundo o padrão JTA. Já nas aplicações standalone, o programa delega o tratamento transacional ao driver JDBC.

Hibernate pode ser utilizado em aplicações Java standalone ou em aplicações Java EE, utilizando servlet ou sessões Enterprise Java Beans.

História

Hibernate foi criado por desenvolvedores Java, espalhados ao redor do mundo, e liderado por Gavin King. Posteriormente, JBoss Inc (empresa comprada pela Red Hat) contratou os principais desenvolvedores do programa para fazer o seu suporte.

A atual versão do Hibernate é a 5.x, que incorporou características como a nova arquitetura Interceptor/Callback, filtros definidos pelo usuário e anotações JDK 5.0 (Metadados do Java), que substitui os arquivos XML. Hibernate 3 também se aproxima das especificações EJB 3.0 e atua como a espinha dorsal das implementações EJB 3.0 em JBoss.

HQL

A HQL (Hibernate Query Language) é um dialeto SQL para o Hibernate. Ela é uma poderosa linguagem de consulta que se parece muito com a SQL, mas a HQL é totalmente orientada a objeto, incluindo os paradigmas de herança, polimorfismo e encapsulamento.

No Hibernate, você pode escolher tanto usar a SQL quanto a HQL. Escolhendo a HQL, você poderá executar os pedidos SQL sobre as classes de persistência do Java ao invés de tabelas no banco de dados.

Utilizando o HQL temos a vantagem de portabilidade de banco, ou seja, suponha que estamos utilizando um banco de dados A, ao trocarmos para um banco B o HQL automaticamente cria comandos referentes a cada banco de dados. Isso facilita, pois no SQL teríamos que rastrear e alterar vários códigos no sistema.

Ligações externas

  • Sítio oficial
  • «Hibernate». no SourceForge 
  • «Comparação entre Hibernate e TopLink com base Mysql». www.patternizando.com.br 
  • «Hibernate». no JavaFree Wiki 
  • «Pequeno tutorial». www.javafree.org 
  • «Relatórios com Hibernate Annotations». www.javafree.org 
  • «Entrevista com o Criador do Hibernate». www.javafree.org 
  • «Tutorial sobre HQL». www.hibernate.org 
  • «Tutorial completo sobre Hibernate». www.visualbuilder.com 
  • «Primeiro programa». no Hibernate 
  • «Página do NHibernate». - Hibernate para a plataforma .NET 
  • v
  • d
  • e
Plataforma Java
Tecnologias Sun
Squawk • JDK - Java Development KitJavaFXOpenJDKMáquina virtual Java • Maxine VM
Tecnologias de plataforma
AppletsServletsMIDletsjsp • Web Start (jnlp)
Principais tecnologias de terceiros
JRockit • GNU ClasspathKaffeTopLink • Apache Harmony • Apache Struts • JBoss Application Server • Tapestry • Jazelle • Superwaba
Linguagens de programação
Java • KotlinGroovyJythonJRuby • Scala • BeanShellClojure • Oxygene • Java Tcl • Processing • Rhino • mais…
Framework
Conferências Java
JavaOne