Recentemente, escrevi muitos tutoriais sobre o Hibernate. O Hibernate é uma das melhores ferramentas de ORM em Java no mercado atual. Então, esta postagem é como um índice de todos os posts de tutoriais e exemplos sobre o Hibernate. Você pode percorrer esses tutoriais do Hibernate em sequência para aprender o Hibernate do zero. Provavelmente, estarei adicionando mais tutoriais sobre o Hibernate à lista, então talvez você queira marcá-la e verificar de vez em quando.
Tutorial do Hibernate
- Tutorial do Hibernate para IniciantesO Hibernate suporta anotações JPA e é muito flexível. Podemos configurá-lo usando XML, arquivos de propriedades e também programaticamente. Este tutorial é uma ótima maneira de começar com o framework do Hibernate. Este tutorial foca em diferentes configurações necessárias para o Hibernate e fornece exemplos de mapeamento simples baseado em XML, bem como mapeamento baseado em anotações JPA. Você também aprenderá diferentes maneiras de inicializar
SessionFactory
e componentes importantes do framework do Hibernate. - Mapeamento Um-para-Um do Hibernate Na maioria das vezes, tabelas de banco de dados estão associadas umas às outras. Existem muitas formas de associação – um-para-um, um-para-muitos e muitos-para-muitos estão no nível amplo, que podem ser ainda divididos em mapeamentos unidirecionais e bidirecionais. Este tutorial orienta você na implementação do Mapeamento Um-para-Um do Hibernate usando configuração XML, bem como usando configuração de anotações JPA.
- Mapeamento Um-para-Muitos do Hibernate Em termos simples, mapeamento um-para-muitos significa que uma linha em uma tabela pode ser mapeada para várias linhas em outra tabela. Por exemplo, pense em um sistema de Carrinho onde temos outra tabela para Itens. Um carrinho pode ter vários itens, então aqui temos um mapeamento um-para-muitos. Neste tutorial, você aprenderá como implementar o Mapeamento Um-para-Muitos usando configuração baseada em XML e depois usando Anotações do Hibernate.
- Mapeamento Muitos-para-Muitos do Hibernate O mapeamento muitos-para-muitos geralmente é implementado no banco de dados usando uma Tabela de Junção, por exemplo, podemos ter as tabelas Carrinho e Item e a tabela Carrinho_Itens para o mapeamento muitos-para-muitos. Todo carrinho pode ter vários itens e todo item pode fazer parte de vários carrinhos, então temos um mapeamento muitos-para-muitos aqui. Este tutorial explica sobre o mapeamento muitos-para-muitos unidirecional e bidirecional do hibernate.
- Linguagem de Consulta do Hibernate (HQL) O framework Hibernate vem com uma poderosa linguagem de consulta orientada a objetos – Linguagem de Consulta do Hibernate (HQL). É muito semelhante ao SQL, exceto que usamos Objetos em vez de nomes de tabelas, o que o torna mais próximo da programação orientada a objetos. Este artigo explica sobre HQL e diferentes cláusulas suportadas pela linguagem HQL.
- Consulta SQL Nativa do Hibernate O Hibernate fornece a opção de executar consultas SQL nativas por meio do uso do objeto SQLQuery. Isso é muito útil quando queremos executar consultas específicas do banco de dados que não são suportadas pela API do Hibernate, como dicas de consulta ou a palavra-chave CONNECT no Banco de Dados Oracle.
- Consulta Nomeada do Hibernate Se houver muitas consultas HQL ou SQL Nativo, então elas causarão uma bagunça no código porque todas as consultas estarão espalhadas por todo o projeto. É por isso que o Hibernate fornece Consulta Nomeada que podemos definir em um local central e usá-las em qualquer lugar no código. Podemos criar consultas nomeadas tanto para HQL quanto para SQL Nativo. As Consultas Nomeadas do Hibernate podem ser definidas em arquivos de mapeamento do Hibernate usando o elemento
query
ousql-query
ou por meio do uso de anotações JPA @NamedQuery e @NamedNativeQuery. - Hibernate Criteria O Hibernate fornece a API Criteria que é mais orientada a objetos para consultar o banco de dados e obter resultados. Não podemos usar Criteria para executar consultas de atualização ou exclusão ou qualquer declaração DDL. É usado apenas para buscar os resultados do banco de dados usando uma abordagem mais orientada a objetos. Alguns dos usos comuns da API Criteria são a Projeção que podemos usar para funções de agregação como sum(), min(), max() etc., ProjectionList para buscar apenas colunas selecionadas, ordenar os resultados, etc.
- Hibernate Primeiro Nível de Cache O Cache do Hibernate pode ser muito útil para obter um desempenho rápido da aplicação se usado corretamente. A ideia por trás do cache é reduzir o número de consultas ao banco de dados, reduzindo assim o tempo de processamento da aplicação. O primeiro nível de cache do Hibernate está associado ao objeto Session. O primeiro nível de cache do Hibernate está habilitado por padrão e não há como desabilitá-lo. No entanto, o Hibernate fornece métodos através dos quais podemos excluir objetos selecionados do cache ou limpar completamente o cache. Qualquer objeto armazenado em cache em uma sessão não será visível para outras sessões e, quando a sessão for fechada, todos os objetos armazenados em cache também serão perdidos.
- Cache de Segundo Nível do Hibernate com EHCache Os provedores de cache de segundo nível do Hibernate incluem o EHCache e o Infinispan, mas o EHCache é mais popular porque é fácil de integrar e suporta todas as estratégias de cache do Hibernate. Este tutorial fornece um exemplo completo para integrar o EHCache com o framework Hibernate.
- Obter vs. Carregar no Hibernate A sessão do Hibernate fornece diferentes métodos para buscar dados do banco de dados. Dois deles são – get() e load(). Existem também muitos métodos sobrecarregados para estes, que podemos usar em diferentes circunstâncias. À primeira vista, get() e load() parecem semelhantes porque ambos buscam os dados do banco de dados. No entanto, existem algumas diferenças entre eles, este tutorial explica sobre eles com código de exemplo.
- Salvar vs. Persistir no Hibernate A sessão do Hibernate é a interface entre a aplicação Java e o framework Hibernate. Este tutorial explica sobre os métodos importantes da sessão para salvar e atualizar dados nas tabelas – save, saveOrUpdate, persist, update e merge.
- Hibernate openSession vs getCurrentSession A SessionFactory do Hibernate é a classe de fábrica por meio da qual obtemos sessões e realizamos operações no banco de dados. O SessionFactory do Hibernate fornece três métodos pelos quais podemos obter objetos de Sessão – getCurrentSession(), openSession() e openStatelessSession(). Este tutorial explica cada um deles com código de exemplo.
- Integração do Hibernate com log4j O Hibernate 4 utiliza o JBoss logging, mas o log4j é o framework de logging mais popular. Um tutorial rápido explicando como integrar o log4j com o framework Hibernate.
- Exemplo de Hibernate com Tomcat JNDI DataSource Na maioria das vezes, o framework Hibernate é utilizado em aplicações web em execução no Tomcat ou em qualquer outro contêiner de servlet. O Hibernate pode utilizar o DataSource definido como recurso JNDI no contêiner. Essa é a abordagem preferida para permitir que o contêiner de servlet gerencie as conexões com o banco de dados usando pooling de conexões.
- Integração Spring Hibernate O Spring é um dos frameworks Java EE mais utilizados e o Hibernate é o framework ORM mais popular. Por isso, a combinação Spring Hibernate é amplamente utilizada em aplicações corporativas. Este tutorial utiliza o Spring 4 e o integra com o Hibernate 3, atualizando em seguida o mesmo projeto para utilizar o Hibernate 4.
- Exemplo do Spring MVC Hibernate Este tutorial avança e explica como integrar o Hibernate com o Spring MVC e usar o gerenciamento de transações declarativo do Spring, em vez de usar o gerenciamento de transações do Hibernate.
- Exemplo de Integração do Struts2 com Hibernate Este tutorial explica a maneira geral de integrar o Hibernate com qualquer aplicativo da web através do uso do ServletContextLister, o exemplo está usando o Struts2 com Hibernate, mas nos bastidores a integração é feita usando apenas tecnologia Servlet. Isso é diferente da integração com o Spring porque o Struts2 não fornece suporte integrado para integração com o Hibernate.
- Exemplo do Hibernate Validator A validação de dados é uma parte integral de qualquer aplicativo. É uma tarefa transversal que ocorre na camada de apresentação, na camada de negócios e na camada persistente. É por isso que o JSR-303 fornece um padrão baseado em anotações para aplicar validação às propriedades do bean Java. O Hibernate Validator fornece suporte para o JSR-303 e este tutorial mostra seu uso com um exemplo simples.
- Plugin do Eclipse Hibernate Tools Se você já trabalhou em projetos de hibernação, deve estar familiarizado com muitas propriedades que precisamos para o mapeamento e o arquivo de configuração do Hibernate. Sem nenhuma ferramenta adequada que possa nos guiar na busca por propriedades corretas, será muito difícil configurar corretamente nossa aplicação. É aí que o Plugin do Eclipse Hibernate Tools se torna útil e um plugin indispensável para projetos Hibernate.
- Perguntas de entrevista do Hibernate Ter um bom conhecimento do framework Hibernate é um ponto a favor para entrevistas baseadas em Java, por isso escrevi este post. Ele contém a maioria das perguntas importantes relacionadas ao framework Hibernate com respostas detalhadas. Você deve revisar essas perguntas antes de ir para a entrevista para atualizar seu conhecimento.
Tutorial do Hibernate – Correções comuns de erros
- Como configurar o hibernate.cfg.xml para trabalhar offline
- org.hibernate.AnnotationException: Nenhum identificador especificado para a classe de entidade
- org.hibernate.HibernateException: get não é válido sem uma transação ativa
- org.hibernate.HibernateException: Nenhuma CurrentSessionContext configurada
- Programa Hibernate não terminando
- O acesso ao DialectResolutionInfo não pode ser nulo quando ‘hibernate.dialect’ não está configurado
Source:
https://www.digitalocean.com/community/tutorials/hibernate-tutorial