Sobes.tech
Junior — Middle

Como é que a aplicação realiza a gravação e recuperação de um objeto do cache de primeiro nível?

sobes.tech IA

Resposta da IA

Em Java, por exemplo, ao usar Hibernate, o cache de primeiro nível é a sessão (Session), que armazena objetos carregados dentro de uma mesma transação. A persistência de um objeto no cache de primeiro nível ocorre automaticamente ao chamar métodos de salvamento ou carregamento de objetos através da sessão.

A recuperação de um objeto do cache de primeiro nível acontece ao fazer uma solicitação repetida do mesmo objeto com o mesmo identificador dentro de uma mesma sessão: Hibernate não acessa a base de dados, mas retorna o objeto do cache.

Exemplo:

Session session = sessionFactory.openSession();
session.beginTransaction();

// Carregamento de um objeto, que entra no cache de primeiro nível
User user = session.get(User.class, userId);

// Ao fazer uma chamada subsequente a get com o mesmo userId, o objeto é obtido do cache, sem realizar consulta ao BD
User sameUser = session.get(User.class, userId);

session.getTransaction().commit();
session.close();

Dessa forma, o cache de primeiro nível está vinculado à sessão e garante otimização ao reutilizar objetos carregados sem requisições adicionais ao banco de dados.