В спящем статистике какая разница между загрузкой и выборкой - PullRequest
11 голосов
/ 04 марта 2009

Я в основном смотрю на EntityStatics (http://www.hibernate.org/hib_docs/v3/api/org/hibernate/stat/EntityStatistics.html). Я вижу много выборок, загрузок и обновлений, и я не могу найти где-нибудь, что говорит, в чем разница между ними.

1 Ответ

6 голосов
/ 04 марта 2009

Работая в обратном направлении по коду, счетчик выборки увеличивается только тогда, когда сущность извлекается из источника данных (в отличие от любых кэшей) -

    protected Object loadFromDatasource(
        final LoadEvent event,
        final EntityPersister persister,
        final EntityKey keyToLoad,
        final LoadEventListener.LoadType options) {
    final SessionImplementor source = event.getSession();
    Object entity = persister.load(
            event.getEntityId(),
            event.getInstanceToLoad(),
            event.getLockMode(),
            source
    );

    if ( event.isAssociationFetch() && source.getFactory().getStatistics().isStatisticsEnabled() ) {
        source.getFactory().getStatisticsImplementor().fetchEntity( event.getEntityClassName() );
    }

    return entity;
}

Счетчик загрузки вызывался из слишком большого количества мест, чтобы отследить их все, но похоже, что он увеличивается каждый раз при загрузке объекта, независимо от источника данных или кэшей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...