As 50 principais perguntas da entrevista do Hibernate (2025)
Aqui estão as perguntas e respostas da entrevista do Hibernate para calouros e também para candidatos experientes para conseguir o emprego dos sonhos.
1. O que é hibernar?
Hibernate é um framework Java popular que permite um mapeamento objeto-relacional eficiente usando arquivos de configuração em formato XML. Após o mapeamento de objetos Java para tabelas de banco de dados, o banco de dados é usado e manipulado usando objetos Java sem escrever consultas complexas ao banco de dados.
Download gratuito de PDF: Perguntas e respostas da entrevista do Hibernate
2. O que é ORM?
ORM (Object Relational Mapping) é o conceito fundamental do framework Hibernate que mapeia tabelas de banco de dados com objetos Java e então fornece vários APIé para realizar diferentes tipos de operações nas tabelas de dados.
3. Como as propriedades de uma classe são mapeadas para as colunas de uma tabela de banco de dados no Hibernate?
Os mapeamentos entre propriedades de classe e colunas de tabela são especificados em XML arquivo como no exemplo abaixo:
4. Qual é o uso da Interface de Configuração no modo de hibernação?
A interface de configuração da estrutura de hibernação é usada para configurar o hibernate. Também é usado para inicialização hibernar. Os documentos de mapeamento do hibernate são localizados usando esta interface.
5. Como podemos usar novas interfaces personalizadas para aprimorar a funcionalidade das interfaces integradas do hibernate?
Podemos usar interfaces de extensão para adicionar qualquer funcionalidade necessária que não seja suportada por interfaces integradas.

6. Todos os arquivos de mapeamento do hibernate devem ter extensão .hbm.xml para funcionar corretamente?
Não, ter a extensão .hbm.xml é uma convenção e não um requisito para nomes de arquivos de mapeamento de hibernação. Podemos ter qualquer extensão para esses arquivos de mapeamento.
7. Como criamos uma fábrica de sessões em hibernação?

Para criar uma fábrica de sessões em hibernação, primeiro é criado um objeto de configuração que se refere ao caminho do arquivo de configuração e depois para essa configuração é criada uma fábrica de sessões conforme mostrado no exemplo abaixo:
Configuration config = new Configuration(); config.addResource("myinstance/configuration.hbm.xml"); config.setProperties( System.getProperties() ); SessionFactory sessions = config.buildSessionFactory();
8. O que são POJOs e qual o seu significado?
POJOs (Plain Old Java Objects) são java beans com métodos getter e setter adequados para cada uma das propriedades.
O uso de POJOs em vez de classes Java simples resulta em um código eficiente e bem construído.
9. O que é HQL?
HQL é a linguagem de consulta usada no Hibernate, que é uma extensão do SQL. HQL é uma linguagem de consulta muito eficiente, simples e flexível para realizar vários tipos de operações em bancos de dados relacionais sem escrever consultas complexas a bancos de dados.
10. Como podemos invocar procedimentos armazenados em hibernação?
No hibernate podemos executar procedimentos armazenados usando o código abaixo:
11. O que é API de critérios?
Critérios é uma API de hibernação simples, mas poderosa, usada para recuperar entidades por meio da composição de objetos de critérios.
12. Quais são os benefícios de usar o modelo Hibernate?
A seguir estão alguns dos principais benefícios do uso do modelo Hibernate:
a. O encerramento da sessão é automatizado.
b. A interação com a sessão de hibernação é simplificada.
c. O tratamento de exceções é automatizado.
13. Como podemos ver o SQL gerado pela hibernação no console?
Precisamos adicionar o seguinte no arquivo de configuração do hibernate para permitir a visualização do SQL no console para fins de depuração:
14. Quais são os dois tipos de coleções em hibernação?
A seguir estão os dois tipos de coleções em hibernação:
- Coleção classificada
- Coleta de pedidos
15. Qual é a diferença entre os métodos session.save() e session.saveOrUpdate() no modo de hibernação?
Método Sessionsave() salva um registro apenas se ele for exclusivo em relação à sua chave primária e não será inserido se a chave primária já existir na tabela.
Método saveOrUpdate() insere um novo registro se a chave primária for única e atualizará um registro existente se a chave primária já existir na tabela.
16. Quais são os benefícios da hibernação JDBC?
- O Hibernate pode ser usado perfeitamente com qualquer tipo de banco de dados, pois é independente do banco de dados, enquanto no caso do JDBC, o desenvolvedor precisa escrever consultas específicas ao banco de dados.
- Usando o hibernate, o desenvolvedor não precisa ser um especialista em escrever consultas complexas, pois o HQL simplifica o processo de escrita de consultas, enquanto no caso do JDBC, é trabalho do desenvolvedor escrever e ajustar consultas.
- No caso de hibernação, não há necessidade de criar pools de conexões, pois o hibernate faz todo o tratamento de conexões automaticamente, enquanto no caso de JDBC, os pools de conexões precisam ser criados.
17. Como podemos obter estatísticas de hibernação?
Podemos obter estatísticas de hibernação usando o método getStatistics() da classe SessionFactory conforme mostrado abaixo:
SessionFactory.getStatistics()
18. Qual é o estado transitório da instância no Hibernate?
Se uma instância não estiver associada a nenhum contexto persistente e também nunca tiver sido associada a nenhum contexto persistente, então ela está em estado transitório.
19. Como podemos reduzir o tempo de ação de gravação do banco de dados no Hibernate?
O Hibernate fornece um recurso de verificação suja que pode ser usado para reduzir o tempo de gravação do banco de dados. O recurso de verificação suja do hibernate atualiza apenas os campos que exigem alteração, enquanto mantém os outros inalterados.
20. Qual é o uso de interfaces de retorno de chamada no modo de hibernação?
As interfaces de retorno de chamada do hibernate são úteis para receber notificações de eventos de objetos. Por exemplo, quando um objeto é carregado ou excluído, um evento é gerado e uma notificação é enviada usando interfaces de retorno de chamada.
21. Quando uma instância entra em estado desanexado em hibernação?
Quando uma instância foi anteriormente associada a algum contexto persistente (por exemplo, uma tabela) e não está mais associada, ela é chamada para estar no estado desanexado.
22. Quais são os quatro níveis de ORM em hibernação?
A seguir estão os quatro níveis de ORM em hibernação:
- Puro Relacional
- Mapeamento de objetos leves
- Mapeamento de objetos médios
- Mapeamento completo de objetos
23. O que é gerenciamento de transações em hibernação? Como funciona?
O gerenciamento de transações é o processo de gerenciamento de um conjunto de instruções ou comandos. Em hibernação; o gerenciamento de transações é feito pela interface de transação conforme mostrado no código abaixo:
Session s = null;
Transaction tr = null;
try {
s = sessionFactory.openSession();
tr = s.beginTransaction();
doTheAction(s);
tr.commit();
} catch (RuntimeException exc) {
tr.rollback();
} finally {
s.close();
}
24. Quais são os dois métodos de configuração de hibernação?
Podemos usar qualquer um dos dois métodos de configuração de hibernação a seguir:
- Configuração baseada em XML (usando o arquivo hibernate.cfg.xml)
- Configuração programática (usando lógica de código)
25. Qual é o serviço de cache padrão do hibernate?
O Hibernate suporta vários serviços de cache como EHCache, OSCache, SWARMCache e TreeCache e o serviço de cache padrão do hibernate é EHCache.
26. Quais são as duas associações de mapeamento usadas no hibernate?
Em hibernação; temos os seguintes dois tipos de associações de mapeamento entre entidades:
- Associação um para um
- Associação muitos-para-muitos
27. Qual é o uso da API Hibernate QBC?
A API Hibernate Query By Criteria (QBC) é usada para criar consultas por manipulação de objetos de critérios em tempo de execução.
28. De quantas maneiras os objetos podem ser obtidos do banco de dados em hibernação?
O Hibernate fornece quatro maneiras de buscar objetos do banco de dados:
- Usando HQL
- Usando identificador
- Usando API de critérios
- Usando SQL padrão
29. Como a chave primária é criada usando o hibernate?
A chave primária do banco de dados é especificada no arquivo de configuração hbm.xml. O gerador também pode ser usado para especificar como a chave primária está sendo criada no banco de dados.
No exemplo abaixo, deptId atua como chave primária:
30. Como podemos reanexar quaisquer objetos desanexados no Hibernate?
Objetos que foram desanexados e não estão mais associados a nenhuma entidade persistente podem ser reanexados chamando o método session.merge() da classe de sessão.
31. Quais são as diferentes maneiras de desativar o cache de segundo nível de hibernação?
O cache de segundo nível do Hibernate pode ser desativado usando qualquer uma das seguintes maneiras:
- Ao definir use_second_level_cache como falso.
- Usando CACHEMODE.IGNORE
- Usando o provedor de cache como org.hibernate.cache.NoCacheProvider
32. O que são metadados ORM?
Todo o mapeamento entre classes e tabelas, propriedades e colunas, tipos Java e tipos SQL etc. é definido em metadados ORM.
33. Qual é a fábrica de transações padrão em hibernação?
Com o hibernate 3.2, a fábrica de transações padrão é JDBCTransactionFactory.
34. Qual é o papel do JMX na hibernação?
Aplicativos e componentes Java são gerenciados em hibernação por uma API padrão chamada API JMX. JMX fornece ferramentas para desenvolvimento de soluções distribuídas, baseadas na web, eficientes e robustas.
35. Como podemos vincular a fábrica de sessão de hibernação ao JNDI?
A fábrica de sessão do Hibernate pode ser vinculada ao JNDI fazendo alterações na configuração no arquivo hibernate.cfg.
36. De quantas maneiras os objetos podem ser identificados no Hibernate?
A identificação de objetos pode ser feita em hibernação de três maneiras:
- Usando identidade de objeto: usando o operador ==.
- Usando igualdade de objetos: usando o método equals().
- Usando a identidade do banco de dados: os objetos do banco de dados relacional podem ser identificados se representarem a mesma linha.
37. Quais são as diferentes estratégias de busca do hibernate?
As seguintes estratégias de busca estão disponíveis no modo de hibernação:
- Junte-se à busca
- Busca em lote
- Selecione Buscando
- Subselecione Buscando
38. Como é feito o mapeamento de objetos Java com tabelas de banco de dados?
Para mapear objetos Java com tabelas de banco de dados, precisamos ter nomes de propriedades de Java beans iguais aos nomes de colunas de uma tabela de banco de dados. Em seguida, o mapeamento é fornecido no arquivo hbm.xml conforme mostrado abaixo:
39. Quais são as propriedades derivadas do hibernate?
Propriedades derivadas são aquelas propriedades que não são mapeadas para nenhuma coluna de uma tabela de banco de dados. Tais propriedades são calculadas em tempo de execução pela avaliação de quaisquer expressões.
40. O que significa uma consulta SQL nomeada em hibernação e como ela é usada?
Consultas SQL nomeadas são aquelas definidas no arquivo de mapeamento e chamadas conforme necessário em qualquer lugar.
Por exemplo, podemos escrever uma consulta SQL em nosso arquivo de mapeamento XML da seguinte forma:
Então esta consulta pode ser chamada da seguinte forma:
List students = session.getNamedQuery("studentdetails")
.setString("TomBrady", name)
.setMaxResults(50)
.list();
41. Qual é a diferença entre os métodos load() e get() no hibernate?
Os métodos Load() resultam em uma exceção se os registros necessários não forem encontrados no banco de dados, enquanto o método get() retorna nulo quando os registros do ID não são encontrados no banco de dados.
Portanto, idealmente devemos usar o método Load() somente quando tivermos certeza da existência de registros em um id.
42. Qual é a utilidade da propriedade version no hibernate?
A propriedade Version é usada em hibernação para saber se um objeto está em estado transitório ou desanexado.
43. O que é programação orientada a atributos?
Na programação orientada a atributos, um desenvolvedor pode adicionar metadados (atributos) no código-fonte java para adicionar mais significado ao código. Para Java (hibernação), a programação orientada a atributos é habilitada por um mecanismo chamado XDoclet.
44. Qual é a utilidade de session.lock() no hibernate?
O método session.lock() da classe de sessão é usado para reanexar um objeto que foi desanexado anteriormente. Este método de reanexação não verifica nenhuma sincronização de dados no banco de dados ao reconectar o objeto e, portanto, pode levar à falta de sincronização nos dados.
45. O hibernate suporta polimorfismo?
Sim, o hibernate oferece suporte total ao polimorfismo. Consultas de polimorfismo e associações de polimorfismo são suportadas em todas as estratégias de mapeamento do hibernate.
46. Quais são os três modelos de herança do hibernate?
O Hibernate possui três modelos de herança:
- Tabelas por classe de concreto
- Tabela por hierarquia de classes
- Tabela por subclasse
47. Como podemos mapear as classes como imutáveis?
Se não quisermos que um aplicativo atualize ou exclua objetos de uma classe em hibernação, podemos tornar a classe imutável definindo mutable=false
48. Qual é o fluxo geral de hibernação usando RDBMS?
O fluxo geral de hibernação envolvendo RDBMS é o seguinte:
- Carregue o arquivo de configuração e crie o objeto da classe de configuração.
- Usando o objeto de configuração, crie o objeto sessionFactory.
- No sessionFactory, obtenha uma sessão.
- Crie uma consulta HQL.
- Execute a consulta HQL e obtenha os resultados. Os resultados estarão na forma de uma lista.
49. O que é mapeamento de objetos leves?
Light Object Mapping é um dos níveis de qualidade ORM em que todas as entidades são representadas como classes e mapeadas manualmente.
50. Qual é a diferença entre associações gerenciadas e associações de hibernação?
As associações gerenciadas estão relacionadas à persistência do gerenciamento de contêineres e são bidirecionais, enquanto as associações de hibernação são unidirecionais.
Essas perguntas da entrevista também ajudarão em sua viva (oral)
Boa coleção de qns…
Excelente explicação,,,,
Você poderia adicionar as perguntas abaixo também
Como podemos invocar procedimentos armazenados em hibernação?
O que é coleta ordenada e coleta ordenada
o que é estado persistente
Como a verificação suja é configurada
Configurar interface de retorno de chamada
Como desanexar um objeto
o que aconteceu se eu desanexar o objeto transitório
explicar cada nível de ORM no Hibernate
Como ativar/desativar cahce de primeiro e segundo nível
Como podemos vincular a fábrica de sessões de hibernação ao JNDI?
Qual é a diferença entre os métodos load() e get() no modo de hibernação?
diferença entre session.lock() e session.merge()
Como uma classe é mapeada como imutável e por quê
Como podemos usar novas interfaces personalizadas para aprimorar a funcionalidade das interfaces integradas do hibernate?
Olá, administrador. Será proveitoso se você adicionar esta pergunta ou perguntas mais importantes, como MCQ, para exame competitivo