Quer ter acesso a todos os cursos desse Guia?

Guia de Referência Hibernate

Neste Guia de Referência você encontrará cursos, devcasts e artigos que demonstram todos os recursos do Hibernate. Entre eles, é claro, como persistir dados em Java com o framework ORM mais utilizado pelos desenvolvedores.

Introdução ao Hibernate

Hibernate é o framework para persistência de dados mais utilizado em projetos Java. Sendo uma das primeiras opções a implementar o conceito de mapeamento objeto-relacional (ORM), em pouco tempo se tornou referência entre os desenvolvedores, tendo influenciado, inclusive, a criação da especificação JPA.

Mas afinal, o que é a JPA? JPA é a especificação do Java que dita como os frameworks ORM devem ser implementados. Ela foi criada com o intuito de padronizar essas soluções. Antes de sua criação existiam diversos frameworks e bibliotecas que abstraiam os desafios da persistência com ORM em Java.

O problema é que cada um fazia isso de uma maneira diferente, o que se tornava um grande problema caso fosse necessário migrar para outra tecnologia. Imagine que você optou por um framework e poucos meses depois a empresa que mantinha esse framework deixou de existir. O que fazer? Basicamente, reescrever sua camada de acesso a dados com uma tecnologia nova.

Isso era ruim não apenas para arquitetos e programadores, mas também para o Java. Como optar por uma tecnologia que nos leva a um problema como esse? A JPA, então, foi criada, dando origem à especificação, e o Hibernate passou a implementá-la, como podemos entender melhor nos seguintes cursos:

Primeiros passos no Hibernate

Para o mercado, não basta saber utilizar a API JDBC para persistir dados com Java. Conhecer a API JPA e pelo menos um framework que a implemente é fundamental. A JPA abstrai e simplifica o acesso a dados, tornando transparente ao programador muitas preocupações que ele possui quando lida apenas com a JDBC, entre elas, o mapeamento objeto relacional. Observe a Figura 1.

Arquitetura de aplicação Java com JPA
Figura 1. Arquitetura de aplicação Java com JPA

Para introduzi-lo à Java Persistence API, reunimos o material a seguir:

Tão ou mais importante que conhecer a JPA é conhecer uma implementação da mesma, como o Hibernate. É com a implementação que, de fato, programamos o acesso a dados de nossa aplicação. E com o Hibernate, podemos, ainda, persistir dados utilizando ou não os recursos da especificação (Figura 2). Para ter o primeiro contato com ele, acesse:

Formulário de Resultado
Figura 2. Persistência de dados com Hibernate

Configurando o Hibernate

Agora que você já teve o primeiro contato com o Hibernate, vamos começar a nos aprofundar em seus recursos. Com o intuito de manter uma sequência lógica, aprenderemos primeiro como configurá-lo.

Quando o configuramos em um projeto, estamos definindo a versão do framework que será utilizada, o banco de dados, os dados para acesso ao banco, entre outras informações. Acesse os posts abaixo para aprender como especificar essas informações:

Mapeamento Objeto-Relacional

Com o Hibernate configurado, o próximo passo é realizar o mapeamento das classes às tabelas do banco de dados. Nas primeiras versões isso era feito via XML. Recentemente, com a implementação das annotations, passou a ser feito também via anotações, o que, em pouco tempo, se tornou a opção preferida dos programadores.

Mapeando entidades

No geral, toda classe que possui relação com uma tabela é chamada de entidade. Mas, como fazemos esse mapeamento em Java, como estabelecemos a ligação entre uma classe e uma tabela (Figura 3)? Para saber como fazer isso, acesse os conteúdos a seguir. Vale ressaltar que esse é um dos pontos mais importantes para a persistência, portanto, saber como fazê-lo é fundamental.

Mapeamento Objeto-Relacional
Figura 3. Mapeamento Objeto-Relacional

Para que você conheça alguns problemas que podem ser evitados ao realizar o mapeamento objeto-relacional, preparamos o seguinte conteúdo:

Mapeando relacionamentos

Com as entidades configuradas, as tabelas e colunas definidas, é fundamental também saber como mapear os relacionamentos entre elas. Como declarar em uma classe que um atributo representa a chave estrangeira de uma tabela, como declarar um relacionamento um para um, um para muitos? É sobre esses e outros assuntos que vamos explorar nos posts abaixo:

Outros recursos básicos

Para o correto uso do framework ORM é necessário conhecer outros recursos do mesmo. Nesta seção reunimos alguns deles, como é o caso da Session, interface fundamental do Hibernate para o acesso e persistência de dados.

Para aprender sobre ela, acesse:

Também é recomendado aprender sobre recursos como cascade e lazy e eager loading. As diferentes opções de cascade permitem ao programador definir a melhor forma como um conjunto de dados relacionados (envolvendo pelo menos duas entidades) deve ser salvo, atualizado ou removido.

Quando lidamos com listagens muito grandes, por exemplo, é uma boa prática considerar a melhor maneira como esses dados devem ser recuperados do banco de dados. Com as opções lazy e eager especificamos se todos os dados devem ser obtidos de uma vez ou conforme a demanda do usuário. Esse assunto é explorado nos posts:

Além desses, também preparamos mais alguns conteúdos para que você compreenda o funcionamento do framework e, a partir disso, saiba como melhor explorar seus recursos.

Consultas no Hibernate

Outra importante tarefa que precisamos tratar quando o assunto é persistência de dados é a forma como os dados são consultados. O Hibernate, em conjunto com a JPA, oferece várias opções para isso, do mais baixo ao mais alto nível de abstração.

Os cursos, devcasts e artigos abaixo ensinam como utilizar as principais ferramentas de consulta definidas pela JPA, assim como a soluções criadas pelo framework analisado nesse guia:

JPA

Uma das primeiras opções quando o assunto é consulta a dados é a Java Persistence Query Language, ou JPQL, a qual é introduzida no seguinte vídeo:

Hibernate

No Hibernate, a JPQL foi implementada e renomeada para HQL. Para aprender sobre ela, preparamos os posts abaixo:

Outra solução criada na JPA e implementada pelo Hibernate é a Criteria API. Com essa API podemos criar consultas de forma programática e orientada a objetos, isto mesmo, nós criamos as consultas chamando métodos encadeados. Para conhecê-la, acesse:

Caso você tenha interesse em ter uma visão geral sobre todas essas opções, assim como criar consultas no Hibernate utilizando código SQL (sim, isso é possível, e recomendado algumas vezes), confira os seguintes posts:

Por fim, recentemente, dada a importância que as consultas e o acesso a dados ganharam nessa nova era da informação, o Hibernate criou mais um mecanismo para tal, muito mais robusto e maduro para as necessidade do mercado: o Hibernate Search. Nos posts abaixo exploramos esse assunto:

Na prática

O próximo passo é pôr as mãos na massa com o framework. Com o intuito de auxiliá-lo nesta etapa, o material publicado nos links a seguir pode ser consumido. Você aprenderá como utilizar todos os recursos vistos até aqui e ao final terá não apenas classes mapeadas, mas também CRUDs completos e tudo aquilo que você precisa para criar a camada de acesso a dados.

Lembre-se que ao programar com Hibernate muitas classes e interfaces da JPA estão incluídas. Por isso, em muitos posts você encontrará referências a ambos (especificação e implementação).

Lembre-se também que o desenvolvimento de uma aplicação não se limita à camada de acesso a dados. Deste modo, é comum integrarmos o Hibernate/JPA a outras tecnologias, como exposto nos conteúdos a seguir:

Jersey/Web services

JSF/PrimeFaces

Spring

Validação de dados

Antes de persistir um dado é muito importante validá-lo. Por mais simples que seja um formulário, por exemplo, é comum que usuários preencham algum campo de forma incorreta. A validação possibilita um controle a essa entrada de dados e, com isso, evita problemas caso o dado precise ser processado ou mesmo exibido em um relatório.

Sobre esse assunto muitos programadores se perguntam: O que é melhor? Validar no back-end ou no front-end? Para abordar esse assunto gravamos os seguintes DevCasts:

Nesse contexto o Hibernate disponibiliza o Hibernate Validator, implementação de referência da especificação Bean Validation. Com Bean Validation a análise dos dados é feita nas classes de domínio, e com isso deixa de ser necessário validar dados no back-end e no front-end.

Para aprender sobre o Hibernate Validator, acesse:

Cache

Em algum momento pode ser que a sua aplicação comece a apresentar perda de performance. Um dos motivos para isso pode ser o acesso ao banco de dados. Para contornar situações como essa, uma opção é utilizar Cache, isto é, um mecanismo que mantenha os dados mais acessados, por exemplo, mais próximos da aplicação, de forma a reduzir o acesso ao banco e todo o tempo e recursos gastos com isso (Figura 4).

Cache de dados com Hibernate
Figura 4. Cache de dados com Hibernate

Os posts a seguir apresentam tudo o que você precisa para implementar cache com Hibernate:

Auditoria

O Hibernate também oferece uma solução completa para auditoria de dados, o Hibernate Envers. Com essa solução a auditoria pode ser feita dentro da aplicação e não mais no banco de dados, provendo assim uma maneira menos dependente do banco para observar como os dados e funcionalidades da aplicação estão sendo acessados e manipulados, se está ocorrendo acesso indevido, entre outras possibilidades (Figura 5).

Auditoria de dados com Hibernate Envers
Figura 5. Auditoria de dados com Hibernate Envers

Os posts abaixo apresentam o projeto Envers na teoria e na prática:

Documentação

Como material de referência sobre os recursos do Hibernate, preparamos as documentações a seguir. Utilize-as para consulta rápida:

Conteúdo Extra

Quando estiver programando com o Hibernate, é comum que você se depare com outros detalhes. Neste tópico separamos um conteúdo adicional que pode servir de apoio nessas ocasiões, por exemplo:

Algo comum e que pode gerar problemas ao software devido à quantidade de opções/formatos são as datas. Para auxiliá-lo na manipulação de datas em seus sistemas, preparamos os posts:

Caso você esteja em dúvida e precisa decidir entre um banco de dados relacional e um não relacional (NoSQL), os posts abaixo abordam os pontos que você deve considerar, tratando também da solução não relacional do Hibernate:

Por fim, vale ressaltar que o Hibernate também oferece opções para quem está planejando migrar seus dados para a nuvem. Para se aprofundar neste assunto, confira os posts abaixo:

Como você pôde verificar, o Hibernate é muito mais que um framework ORM. Ele é um projeto que, além de implementar a JPA, fornece um maduro e robusto conjunto de tecnologias que viabilizam um controle completo sobre os dados da sua aplicação.

Saiba mais: JDBC

JDBC é a API base para acesso a dados em Java. É com ela que o programador Java começará a escrever seus primeiros comandos SQL, bem como acessar diferentes bancos de dados, sem precisar de uma API específica para cada um deles. Sendo assim, mesmo quando utilizamos um framework de alto nível, a JDBC está presente.

Para saber mais sobre a JDBC, acesse:

Mais sobre Java

Além dos cursos e exemplos sugeridos nesse guia, a DevMedia publica com frequência novos conteúdos sobre Java, os quais você pode conferir nos Guias de Consulta abaixo:

Além disso, você pode conferir todo o conteúdo de Java clicando aqui.

Black November

Desconto exclusivo para as primeiras 200 matrículas!

<Perguntas frequentes>
Carreira
Por onde devo iniciar os estudos?

Recomendamos começar pelo Plano de Estudo Carreira Programador Front-End. Essa área da programação é mais visual e intuitiva, tornando-a ideal para iniciantes. No Front-End, você aprenderá a criar a parte visual dos sites, como layout, cores e interatividade. Depois de dominar o Front-End, você pode avançar para Programador Back-End, onde aprenderá a lidar com a lógica e o funcionamento interno dos sites, e, finalmente, para Programador Mobile, focando no desenvolvimento de aplicativos para smartphones. Nossa metodologia é estruturada de forma progressiva para garantir que você desenvolva confiança e experiência ao criar projetos reais, como sites estáticos e dinâmicos.

Em quanto tempo vou me tornar um programador?

O tempo necessário para se tornar um programador varia de acordo com a dedicação de cada estudante. Com nossa metodologia, que inclui um Plano de Estudo detalhado e suporte contínuo, você pode se tornar um programador de 6 meses a um ano, dependendo do seu ritmo e esforço. Nossa abordagem prática e orientada a projetos ajudará a acelerar seu aprendizado.

Eu preciso de um diploma de faculdade para começar a atuar como programador?

Não. Ser programador é uma excelente oportunidade para quem não possui diploma de faculdade. Muitas empresas contratam baseadas nas habilidades técnicas e experiência prática, não necessariamente em diplomas. Após conquistar uma vaga, você pode optar por complementar sua formação com um diploma.

Por que a programação se tornou a profissão mais promissora da atualidade?

A necessidade de programadores cresceu exponencialmente, especialmente após a pandemia de Covid-19, que forçou muitas empresas a se adaptarem ao digital. Com o crescimento das empresas de tecnologia, a demanda por programadores aumentou. Atualmente, há mais de 200 mil vagas abertas no Brasil devido à falta de profissionais qualificados.

Metodologia
Quais são os principais diferenciais da DevMedia?

Didática e Metodologia Com mais de 20 anos de experiência, nossa metodologia foca em menos aulas e mais prática. Desenvolvemos dezenas de projetos e exercícios para ajudar você a se tornar um programador completo. Nossos projetos são desafiadores e autênticos, não apenas exercícios repetitivos.
Projetos reais e exercícios Você desenvolverá diversos projetos práticos em cada carreira (Front-End, Back-End e Mobile), recebendo mentoria e suporte contínuo. A prática é essencial, e oferecemos milhares de exercícios para ajudar você a fixar o conteúdo e melhorar sua posição no ranking.
Suporte ao aluno Nossa plataforma oferece suporte dedicado com professores experientes, respondendo suas dúvidas em menos de uma hora. Isso garante que você receba a ajuda necessária durante toda a sua jornada de aprendizado.
Gamificação A DevMedia utiliza gamificação para tornar o aprendizado mais envolvente e motivador. Você acumula pontos e moedas por acertos, que podem ser trocados por produtos e customizações no seu card pessoal. Além disso, o sistema de ranking mensal incentiva a competição amigável e a melhoria contínua.

O que eu irei aprender estudando pela DevMedia?

Ao estudar conosco, você se tornará um programador Full Stack, dominando Front-End, Back-End e Mobile. Utilizamos a linguagem JavaScript, a mais utilizada no mercado, preparando você para criar sistemas webs e aplicativos celulares. Nossa abordagem prática inclui exercícios para fixar o conhecimento e desenvolvimento de projetos reais que te preparam, para o mercado de trabalho.

Quais as vantagens de aprender programação através da linguagem JavaScript?

  1. Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
  2. Elá é Full Stack. Ela te permite criar aplicações Front-end, Back-end e Mobile. Isso acelera muito sua carreira e aumenta suas possibilidades de pegar trabalhos autônomos e conquistar uma vaga no mercado.
  3. Ela é fácil de aprender. Como ela não exige conhecimento inicial em “Orientação a Objetos” ela se torna mais simples com uma curva de aprendizado suave e vai te permitir começar a programar mais rápido do que outras linguagens

A plataforma oferece certificados?

Sim, oferecemos dois tipos de certificados: o certificado de conclusão, que você adquire ao consumir o conteúdo, e o certificado de autoridade, que você obtém ao acertar exercícios. Ambos possuem carga horária, que pode ser utilizada para fins acadêmicos, como atividades complementares na faculdade, e também para comprovações em processos seletivos ou no seu currículo.

A plataforma tem suporte ao aluno, como funciona?

Sim, temos uma equipe de programadores pronta para ajudar com todas as suas dúvidas! Durante o horário comercial, o tempo médio de resposta é de até 10 minutos. E não se preocupe, também oferecemos suporte à noite e nos finais de semana, com um prazo de resposta um pouco maior.

A DevMedia me forma como programador Full Stack?

Sim! Oferecemos uma formação completa, do zero até Full Stack. Nosso foco é na prática, então você vai encontrar muitos exercícios e projetos reais ao longo do curso. Garantimos que você sairá com a autonomia necessária para desenvolver seus próprios projetos com confiança!

Tem horário para as aulas?

Não, não temos horários fixos para as aulas. Todo o nosso conteúdo está disponível para você acessar a qualquer momento, permitindo que você estude conforme sua própria disponibilidade e ritmo. Dessa forma, você pode integrar o aprendizado à sua rotina de maneira mais flexível e eficaz.

Por que a DevMedia não usa videoaulas em sua didática?

Nosso foco principal é formar programadores de verdade. Sabemos que o dia a dia de um programador envolve muita leitura, interpretação e escrita de código. Por isso, nosso conteúdo é desenvolvido para ambientar você nesse processo desde o início, proporcionando mais autonomia e acelerando seu aprendizado.
Na vídeo-aula é o professor que está lendo, interpretando e escrevndo o código para você, isso limita o seu progresso. Ao ler e interagir diretamente com o conteúdo, você exercita sua capacidade de leitura e concentração, além de poder avançar no seu próprio ritmo. Dessa forma, você se torna um programador mais independente e preparado para os desafios reais do mercado.

Preciso de um computador específico para estudar na DevMedia?

Não é necessário nada específico. Qualquer computador com processador atual e memória de 8 GB é suficiente.

Eu consigo estudar pelo celular?

Sim, a DevMedia possui um aplicativo que te permite seguir com seus estudos de qualquer lugar.

A DevMedia tem aplicativo?

Sim, nosso aplicativo está disponível na Play Store e na Apple Store, permitindo que você estude de forma prática e conveniente em qualquer lugar.

Preciso estar na faculdade para acompanhar os estudos na DevMedia?

Não, a faculdade não é necessária. Você não precisa de nenhum conhecimento prévio para iniciar os estudos na nossa plataforma.

Assinatura e Pagamentos
Quais são os planos de assinatura disponíveis?

Oferecemos dois tipos de planos: o plano recorrente e o plano anual. No plano recorrente, a cobrança é lançada mensalmente no cartão de crédito, necessitando apenas do limite para uma parcela. No plano anual, o valor total é lançado no cartão de crédito, parcelado em 12 vezes, e você precisa dispor do valor total no limite do seu cartão. Você também pode optar por pagar no PIX ou no Boleto parcelado (sujeito à analise de crédito)

Adquirindo o plano, terei acesso a todo o conteúdo?

Sim, ao assinar nossa plataforma, você desbloqueia acesso total a todo o nosso conteúdo, sem precisar comprar nada separadamente.

A plataforma tem planos vitalícios?

Não, nossos planos são anuais, garantindo que você tenha acesso contínuo às atualizações mais recentes e aos novos conteúdos. A tecnologia evolui rapidamente, e um plano vitalício oferece um conteúdo estático que se tornará ultrapassado em pouco tempo. Com nossos planos anuais, você está sempre à frente, aprendendo as novidades e tendências mais atuais no mundo da programação.

A DevMedia tem fidelidade?

Sim, nosso plano tem uma fidelidade de 12 meses, o que garante o tempo ideal para você explorar nosso conteúdo e desenvolver a autonomia necessária para trabalhar com programação.

Como funciona o cancelamento?

Nós garantimos seu direito de cancelamento com reembolso total dentro dos primeiros 7 dias, tanto no plano anual quanto no plano recorrente. Após esse período, se você estiver no plano recorrente e optar por cancelar antes de completar 12 meses, há uma taxa de 10% sobre o valor total. No plano anual, não há multas adicionais, mas o valor pago não é reembolsável.
Para que você aproveite ao máximo seu investimento, oferecemos suporte personalizado para orientá-lo na utilização da plataforma. Também temos a opção de transferência de titularidade do plano, permitindo que outra pessoa aproveite o restante do seu período de assinatura.

A renovação é automática?

Sim, nosso plano anual renova automaticamente após 12 meses, proporcionando conveniência e continuidade no seu aprendizado. Na renovação automática não é debitado do seu cartão as 12 parcelas. Para facilitar e não prejudicar o seu limite, a renovação é feita no modelo recorrente, cobrando uma mensalidade a cada mês.
Além disso, a renovação não tem fidelidade, oferecendo total flexibilidade. Você também tem a liberdade de desativar a renovação automática a qualquer momento, garantindo controle absoluto sobre sua assinatura.

Cadastro
Como excluir meus dados da plataforma?

Para excluir seus dados da plataforma, acesse o link : https://www.devmedia.com.br/fale-conosco/ e abra um protocolo de 'Exclusão de dados'. Nossa equipe processará a solicitação e removerá todas as informações do seu cadastro.

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar