Junior — Middle
Pode explicar o que é o cache de nível um no EntityManager e como ele funciona?
sobes.tech IA
Resposta da IA
A cache de primeiro nível (First Level Cache) no EntityManager é um mecanismo integrado no próprio EntityManager para armazenar objetos carregados da base de dados dentro de uma mesma sessão (transação).
Como funciona:
- Ao carregar uma entidade através do EntityManager, o objeto é guardado na cache de primeiro nível.
- Se, durante a mesma sessão, a mesma entidade com o mesmo identificador for solicitada, o EntityManager devolve o objeto da cache em vez de fazer uma nova consulta à base de dados.
- A cache de primeiro nível funciona apenas dentro de um único EntityManager (sessão).
- Ao fechar a sessão, a cache é limpa.
Isto melhora o desempenho ao reduzir o número de acessos à base de dados e garante a consistência dos dados dentro de uma mesma transação.
Exemplo:
EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();
User user1 = em.find(User.class, 1); // consulta à base
User user2 = em.find(User.class, 1); // da cache de primeiro nível, sem nova consulta à base
em.getTransaction().commit();
em.close();
Assim, a cache de primeiro nível ajuda a otimizar o trabalho com a base de dados, reduzindo consultas redundantes.