O artigo trata de algumas das novas funcionalidades do Hibernate 4, framework de mapeamento objeto/relacional Java mais popular atualmente. Dentre as novidades trazidas pelas versões 4.0, 4.1 e a atual 4.2 CR (Candidate Release).
Artigo do tipo Tutorial
Recursos especiais neste artigo: Contém nota Quickupdate, Artigo no estilo Solução Completa
Novidades do Hibernate 4
O artigo trata de algumas
das novas funcionalidades do Hibernate 4, framework de mapeamento
objeto/relacional Java mais popular atualmente. Dentre as novidades trazidas
pelas versões 4.0, 4.1 e a atual 4.2 CR (Candidate
Release), o artigo mostra por meio de uma aplicação de exemplo o registro
central de serviços do Hibernate, o suporte a bancos de dados multi-inquilinos
e a utilização de identificadores naturais.
Em que
situação o tema é
útil O tema é útil para todo
desenvolvedor que trabalha com o desenvolvimento de aplicações Java cuja persistência
é feita em bancos de dados relacionais, como Oracle, Microsoft SQL Server, IBM
DB2, PostgreSQL, MySQL, dentre outros. Em especial, desenvolvedores que
precisam implementar aplicações com arquitetura multi-inquilinos (muito comum
em soluções SaaS para computação em nuvem) ou que realizam frequentemente
consultas ao banco de dados filtrando por identificadores naturais (atributos
únicos que, porém, não compõem a chave primária da entidade em questão) poderão
ver na prática como utilizar as novas funcionalidades do Hibernate para estas
situações.
O Hibernate é o framework de mapeamento objeto/relacional
mais conhecido e utilizado para a plataforma Java atualmente. Foi também um dos
pioneiros desse tipo de solução de persistência e foi utilizado como base para
a definição do padrão Java Persistence API 2.0, dada a sua popularidade. Veja a
Nota do DevMan 1.
Nota do DevMan 1. Mapeamento Objeto/Relacional
Mapeamento Objeto/Relacional (em
inglês: object/relational mapping, ou ORM) é uma solução para persistência de objetos
em bases de dados relacionais. Estes dois paradigmas são incompatíveis: na
orientação a objetos, os dados são armazenados como atributos de objetos
ligados entre si formando um grafo; já em bases de dados relacionais, dados são
armazenados em tabelas com linhas e colunas, associadas umas às outras por
chaves primárias e estrangeiras. Frameworks ORM transformam os dados de uma
representação para a outra utilizando meta-dados e oferecendo APIs e linguagens
de consulta para realizar operações de persistência.
Em seus muitos anos de existência, o projeto cresceu e
lançou diversos subprojetos como o Hibernate Shards (para persistência em
bancos de dados distribuídos), Hibernate Search (trazendo funcionalidades mais
avançadas de pesquisa textual para o banco de dados), Hibernate Validator
(implementação de referência da JSR 303 – Bean Validation), Hibernate OGM
(para soluções NoSQL), dentre outras. Neste artigo, abordaremos o núcleo do
framework, que na época da criação dos subprojetos foi chamado de Hibernate
Core, mas que hoje é conhecido como Hibernate ORM. Utilizaremos todos estes
nomes (Hibernate, Hibernate Core e Hibernate ORM) para fazer referência ao
mesmo framework.
Em dezembro de 2011, a JBoss (empresa que coordena o
desenvolvimento do framework) lançou a versão 4.0 do Hibernate ORM, registrando
um salto da versão anterior, a 3.6.9. Em fevereiro de 2012 registrou-se um
avanço um pouco menor com o lançamento da versão 4.1. No final de janeiro, foi
publicada a Candidate Release (CR) da
versão 4.2 do núcleo do framework (veja a Nota
do DevMan 2). Apesar de muitos usuários ávidos por novas funcionalidades já
utilizarem o Hibernate 4.x há meses, os mais conservadores provavelmente se
ativeram a alguma versão da família 3.x até que as novas versões estivessem
mais estáveis.
Nota do DevMan 2. Candidate Release
Versões Candidate Release representam
distribuições de um framework ou aplicação que, segundo os seus próprios desenvolvedores,
encontram-se quase prontas para uso em ambientes de produção. Dentro de uma
numeração qualquer (ex.: 4.2) podem ser lançadas algumas versões CR (CR1, CR2,
etc.) até que o software seja considerado estável (nenhuma falha séria não corrigida
encontra-se reportada) e, então, é lançada a versão final daquela numeração.
Em todas estas evoluções, desde a 4.0 há mais de um ano
atrás até a mais recente CR do Hibernate ORM 4.2, algumas novas funcionalidades
foram adicionadas ao framework em relação à versão 3.6. De acordo com os
próprios desenvolvedores, em seu blog (veja Links), destacam-se as seguintes:
·
Uma nova forma de obtenção da SessionFactory,
após unificação dos serviços já existentes no framework em um registro único;
·
Adequação do framework à plataforma OSGi (veja Links), dividindo as classes em cada um
de seus pacotes em três categorias: públicas, internas e SPI (Service Provider
Interface, ou Interface Provedora de Serviços);
·
Suporte a bancos de dados multi-inquilinos (multi-tenant databases).
Bancos de dados deste tipo armazenam dados de diferentes organizações
(inquilinos) na mesma instância, gerenciando o acesso de cada um aos seus
dados;
·
Uma nova API para recuperação de objetos
utilizando identificadores naturais. Tais identificadores são aqueles que fazem
parte do domínio do problema e não foram adicionados artificialmente somente
por questões de persistência;
·
Verificação de objetos sujos (dirty checking)
personalizável pelo cliente. Em outras palavras, permite que o próprio usuário
do framework especifique quando um objeto deve ser considerado sujo (ou seja,
foi modificado em relação aos dados do banco) ou não;
·
Internacionalização das mensagens de log utilizando
JBoss Logging;
·
Uso da JDK 1.6 e JDBC 4 como base para o
desenvolvimento.
Neste artigo, apresentaremos por meio de exemplos algumas
das funcionalidades listadas acima. Começaremos, no entanto, com instruções de
download e “instalação” do framework.
Download e Instalação
O Hibernate ORM pode ser obtido no site oficial do framework
(veja Links), na seção Downloads.
Ele é distribuído em duas formas: pacotes de distribuição contendo binários,
fontes e documentação ou por meio de um repositório de artefatos Maven.
O Maven (veja Links)
é uma ferramenta de gerência de projetos de software que permite a um
desenvolvedor indicar as dependências de um projeto (por exemplo, o framework
Hibernate) e confiar à ferramenta a obtenção dos arquivos JAR necessários,
incluindo qualquer dependência transitiva, de repositórios na Internet. Para o
leitor interessado, o assunto foi abordado na Java Magazine 101.
No primeiro caso, a distribuição em um pacote (ZIP ou TGZ)
quando descompactada provê todos os arquivos necessários para uso do framework
na pasta lib. Esta pasta é ainda subdividida
em quatro pastas:
·
lib/required: JARs
que são obrigatórios para uso do Hibernate. Caso você esteja configurando o classpath do seu projeto manualmente, estes são os
arquivos a serem adicionados para utilização do framework;
·
lib/jpa: o JAR
presente neste diretório contém as classes que implementam o suporte do
Hibernate ao padrão JPA (Java Persistence API), caso o desenvolvedor prefira
utilizar esta interface padrão ao invés da API específica do framework;
·
lib/envers:
esta pasta contém o framework de auditoria de entidades JBoss Envers (veja Links). Tal framework registra o
histórico de modificações em determinados atributos de entidades persistentes
para auditoria futura;
·
lib/optional:
esta pasta contém JARs relativos a funcionalidades opcionais do framework, como
utilização do pool
de conexões C3P0 ou do cache ehcache ao invés das soluções utilizadas por
padrão caso nenhuma configuração específica seja feita (tais configurações
estão fora do escopo deste artigo).
Oferta válida para todos os planos durante o mês de dezembro
+3 MESES
Grátis
Veja os resultado dos nossos alunos
Conquistas reais de quem está aplicando o método
<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?
Ela é Multiplataforma, ela vai te permitir programar para web e para celulares utilizando praticamente a mesma sintaxe.
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.
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 o 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
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.
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.
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.
Compartilhe esse conteúdo com um amigo!
Faça login para ganhar recompensas.
Ou
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.