Junior — Middle
Чӣ гуна дар барнома нигоҳ доштани ва гирифтани объект аз кеши сатҳи аввалӣ сурат мегирад?
sobes.tech AI
Ҷавоб аз AI
Дар Java, масалан ҳангоми истифодаи Hibernate, кэш аввалин сатҳ (Session) аст, ки объектҳоро, ки дар доираи як транзаксия бор карда шудаанд, нигоҳ медорад. Заҳир кардани объект дар кэши аввалин сатҳ автоматӣ аст, вақте ки методҳои нигоҳдорӣ ё боркунии объект тавассути сессия даъват мешаванд.
Бозгашт аз кэши аввалин сатҳ вақте рӯй медиҳад, ки дар доираи як сессия, бо ҳамон идентификатор, дархости такрорӣ барои ҳамон объект карда мешавад: Hibernate ба базаи додаҳо муроҷиат намекунад, балки объектро аз кэш бармегардонад.
Масалан:
Session session = sessionFactory.openSession();
session.beginTransaction();
// Боркунии объект, ки ба кэши аввалин сатҳ ворид мешавад
User user = session.get(User.class, userId);
// Дар даъвати баъдӣ бо ҳамон userId, объект аз кэш гирифта мешавад, бидуни иҷрои дархости ба БД
User sameUser = session.get(User.class, userId);
session.getTransaction().commit();
session.close();
Ин тариқ, кэши аввалин сатҳ ба сессия вобаста аст ва бо такрори истифодаи объектҳои боршуда, оптимизатсияро таъмин мекунад, бидуни дархостҳои иловагӣ ба базаи додаҳо.