Junior — Middle
Uygulamada bir nesnenin birinci seviye önbellekten nasıl saklandığı ve alındığı nasıl gerçekleştirilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da, örneğin Hibernate kullanırken, birinci seviye önbellek oturumdur (Session), ve bu oturum, bir işlem kapsamında yüklenen nesneleri tutar. Bir nesnenin birinci seviye önbellekte saklanması, oturum aracılığıyla nesne kaydetme veya yükleme metodlarının çağrılmasıyla otomatik olarak gerçekleşir.
Bir nesnenin birinci seviye önbellekten alınması, aynı oturum içinde aynı kimliğe sahip nesne tekrar sorgulandığında olur: Hibernate veritabanına erişmez, nesneyi önbellekten döndürür.
Örnek:
Session session = sessionFactory.openSession();
session.beginTransaction();
// Nesne yüklenir, bu nesne birinci seviye önbelleğe alınır
User user = session.get(User.class, userId);
// Aynı userId ile tekrar get çağrısı yapıldığında, nesne önbellekten alınır, veritabanına sorgu yapılmaz
User sameUser = session.get(User.class, userId);
session.getTransaction().commit();
session.close();
Bu şekilde, birinci seviye önbellek oturuma bağlıdır ve yüklenen nesnelerin tekrar kullanımıyla ek sorgulara gerek kalmadan optimizasyon sağlar.