20 perguntas e respostas mais comuns em entrevistas de hibernação [para calouros e experientes]

Publicados: 2020-12-31

Por muito tempo, Java ocupou uma das primeiras posições na lista de linguagens de programação mais populares. Naturalmente, sendo uma linguagem de programação de alta prioridade preferida por desenvolvedores em todo o mundo, o Java é acompanhado por uma enorme coleção de ferramentas, bibliotecas e estruturas. Neste post, vamos falar sobre um framework Java popular, o Hibernate.

Qualquer pessoa que já trabalhou ou trabalha com Java conhece bem o Hibernate e seus poderes. No entanto, vamos detalhar para aqueles que acabaram de encontrar esse nome – Hibernate.

Índice

O que é Hibernar?

Hibernate é uma ferramenta ORM (object-relacional mapping) projetada exclusivamente para Java. em outras palavras, oferece uma estrutura para ajudar a mapear um modelo orientado a objetos para um banco de dados relacional. O Hibernate se concentra principalmente no mapeamento de classes Java para tabelas de banco de dados e mapeamento de tipos de dados Java para tipos de dados SQL .

O Hibernate também estende os serviços de consulta e recuperação de dados. Ele é escrito em Java e é baseado em JVM. O Hibernate oferece implementações de referência da Java Persistence API, o que o torna uma escolha fantástica para ORM (Object Relational Mapping). Podemos usar a API de persistência do Hibernate para operações CRUD

Originalmente, o Hibernate foi projetado para servir como uma alternativa mais simples e melhor do EJB2 (Enterprise Java Beans versão 2). Hoje, o Hibernate se orgulha de ser uma das ferramentas ORM mais usadas para aplicativos Java.

É amplamente usado para desenvolver aplicativos corporativos baseados em Java para operações de banco de dados. Além disso, a API de persistência do Hibernate é excelente para operações CRUD.

Agora que você tem algum conhecimento prévio do Hibernate, vamos conhecer um pouco melhor essa ferramenta ORM com essas perguntas do X Hibernate Interview!

Inscreva-se em cursos de desenvolvimento de software das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Perguntas e respostas da entrevista do Hibernate

1.O que é ORM?

ORM (Object Relational Mapping) refere-se a uma técnica de mapeamento de objetos com os dados armazenados em um banco de dados. O objetivo do ORM é simplificar a criação de dados, acesso a dados e manipulação de dados.

2.O que é JPA?

Java Persistence API (JPA) é uma especificação que aloca padrões e funcionalidades para ferramentas ORM. Você pode acessar classes e interfaces JPA a partir do pacote javax.persistence . Todas as especificações JPA são definidas usando anotações no pacote javax.persistence. A vantagem de usar anotações JPA é que elas permitem escrever código independente de implementação.

3. Quais são as anotações JPA importantes usadas para mapeamento de hibernação?

O Hibernate suporta anotações JPA junto com muitas outras anotações que você pode acessar através do pacote org.hibernate.annotations. Aqui estão sete das anotações JPA mais importantes:

javax.persistence.Entity – É usado em combinação com classes de modelo para declará-los como beans de entidade.

javax.persistence.Table – É usado com beans de entidade para definir o nome da tabela correspondente em um banco de dados.

javax.persistence.Access – É usado para especificar o tipo de acesso, campo ou propriedade. O valor padrão para esta anotação é campo.

javax.persistence.Id – Define a chave primária no bean de entidade.

javax.persistence.EmbeddedId – É usado para especificar uma chave primária composta no bean de entidade.

javax.persistence.Column – Especifica o nome da coluna na tabela do banco de dados.

javax.persistence.GeneratedValue – Define a estratégia necessária para gerar a chave primária.

4. Definir HQL

HQL significa Hibernate Query Language. É uma linguagem de consulta orientada a objetos, independente do banco de dados.

5.Como você faria o mapeamento no Hibernate?

O recurso de mapeamento de associação do Hibernate facilita o mapeamento suportando as quatro associações padrão, da mesma forma que um modelo de banco de dados relacional:

  • Associações de um para um
  • Associações de um para muitos
  • Associações de muitos para um
  • Associações de muitos para muitos

Cada uma dessas associações pode ser mapeada como associação unidirecional ou bidirecional.

6.Nomeie as principais interfaces/componentes do Hibernate.

O Hibernate tem seis interfaces principais – Configuration, SessionFactory, Session, Query, Criteria e Transaction.

7.Você pode criar uma consulta SQL no Hibernate?

Sim, você pode criar consultas SQL no Hibernate. Para criar uma consulta SQL, você deve usar a seguinte sintaxe:

Session.createSQLQuery

8.O que é o arquivo de configuração do Hibernate?

O arquivo de configuração do Hibernate armazena configurações específicas do banco de dados. Ele é usado para inicializar a interface SessionFactory. Este arquivo também contém outras informações relevantes, como informações de dialeto que permitem ao Hibernate saber o tipo de banco de dados e os detalhes do arquivo/classe de mapeamento.

9. O que é Classe Persistente?

No Hibernate, as classes cujos objetos e instâncias são armazenados em classes de banco de dados são chamadas de classes persistentes.

10. Definir Sessão

A interface Session está entre o Hibernate e uma camada de aplicação Java. É usado principalmente para executar operações de banco de dados. A sessão ajuda a estabelecer e manter uma conexão entre um aplicativo Hibernate e o banco de dados. Ele oferece diferentes métodos para realizar operações de criação, leitura, atualização e exclusão de objetos persistentes.

Além disso, Session atua como uma fábrica de Query, Criteria e Transaction, o que significa que estende métodos de fábrica para retornar essas instâncias. Você pode usar o objeto Session para criar critérios e executar consultas HQL e consultas nativas SQL.

11. Defina SessionFactory.

No Hibernate, SessionFactory é a classe de fábrica usada para acessar objetos Session. Ele lê os parâmetros de configuração do Hibernate e se conecta ao banco de dados para buscar objetos Session. SessionFactory é essencialmente uma fábrica de Session e fornece a instância de Session.

Uma vez criada a SessionFactory, seu estado interno é fixo, tornando-a imutável. O estado interno da SessionFactory contém os metadados completos do Mapeamento Objeto/Relacional.

12.Distinga entre arquivo de configuração do Hibernate e arquivo de mapeamento do Hibernate.

O arquivo de configuração do Hibernate inclui configurações específicas do banco de dados e informações de dialeto. É usado para inicializar SessionFactory. Você pode acessar as credenciais do banco de dados ou informações de recursos JNDI a partir do arquivo XML de configuração do Hibernate.

Por outro lado, o arquivo de mapeamento do Hibernate é usado para definir mapeamentos de coluna da tabela de banco de dados e campos de bean de entidade. O arquivo de mapeamento é o núcleo de cada aplicativo Hibernate. Ele contém um mapeamento de um nome de classe POJO para um nome de tabela e nomes de variáveis ​​de classe POJO para nomes de coluna da tabela.

13. O que são POJOs?

POJO é um acrônimo para Plain Old Java Object. Essencialmente, POJOs são java beans projetados com métodos getter e setter padrão para propriedades individuais. A vantagem de usar POJOs em vez de classes Java é que você pode escrever um código limpo, preciso e eficiente.

14. Nomeie os principais componentes de um objeto de configuração do Hibernate.

Um objeto de configuração do Hibernate tem dois componentes principais

  1. Conexão de banco de dados que é gerenciada por um ou mais arquivos de configuração.
  2. Configuração de mapeamento de classe que é usada para estabelecer a conexão entre classes Java e tabelas de banco de dados.

15.O que é o dialeto de hibernação?

Hibernate Dialect especifica o tipo de banco de dados que você deseja usar. Ele permite que o Hibernate conheça essas informações antecipadamente para gerar instruções SQL apropriadas que melhor se adaptem ao seu tipo de banco de dados preferido/especificado.

16. Defina "Cache de hibernação".

O cache do Hibernate é o processo de consulta de dados para aumentar a velocidade e o desempenho de um aplicativo Hibernate. O objetivo é minimizar o número de consultas ao banco de dados, resultando em um tempo de processamento reduzido.

EHCache é o recurso de cache padrão do Hibernate.

17. O que são cache de primeiro e segundo nível?

No Hibernate, o cache de primeiro nível refere-se ao cache de sessão. É o cache obrigatório pelo qual todas as solicitações devem passar. O segundo cache é um cache opcional que armazena objetos em cache nas sessões.

Você pode configurar um cache de segundo nível com base em uma pré-coleta e por classe. Como regra geral, o cache de primeiro nível deve ser consultado antes de tentar localizar um objeto no cache de segundo nível.

18. Explique os diferentes estágios de um bean de objeto/entidade.

Uma instância de bean de objeto/entidade geralmente existe em qualquer uma das três fases a seguir:

  • Transiente – Nesta fase, um objeto nunca persiste ou se associa a nenhuma sessão. Você pode converter instâncias transitórias em persistentes usando as funções save(), persist() ou saveOrUpdate(). Para reverter uma instância persistente de volta para transiente, você pode usar o comando delete().
  • Persistente – Um objeto atinge o estado persistente quando se associa a uma sessão exclusiva. Todas as instâncias retornadas pelas funções get() ou load() estão no estado persistente.
  • Desanexado – Quando um objeto persistente não se associa a nenhuma sessão, ele atinge o estado desanexado. Você pode converter uma instância desanexada em persistente por meio das funções update(), saveOrUpdate(), lock() ou replica().

19.Qual é o propósito do Dirty Checking no Hibernate?

O recurso de verificação automática suja do Hibernate chama automaticamente a instrução de atualização em objetos modificados em uma transação, ajudando assim os desenvolvedores a evitar ações de gravação demoradas.

A verificação suja apenas modifica/atualiza os campos que exigem ação, mantendo os outros campos intocados. No geral, reduz o tempo de gravação do banco de dados.

20. Defina “Gerenciamento de transações”.

O Gerenciamento de Transações é um recurso do framework Spring. É basicamente o processo de gerenciar um conjunto de comandos/instruções. No Hibernate, a interface Transaction realiza o Transaction Management mantendo a abstração da implementação da transação (JTA, JDBC). Você pode iniciar uma transação chamando o método session.beginTransaction() .

Leia também: Perguntas e respostas da entrevista sobre Java

Conclusão

Para encerrar, mesmo que essas vinte perguntas da entrevista do Hibernate risquem a superfície do tópico em questão, esperamos que isso ajude você a quebrar o gelo com o Hibernate e se aprofundar nele!

Desejamos a você tudo de bom para iniciar sua carreira em Java!

Aterre no seu emprego dos sonhos

Inscreva-se agora para Mestrado em Engenharia de Software