当前位置:  开发笔记 > 编程语言 > 正文

在hibernate统计中有什么是load和fetch之间的区别

如何解决《在hibernate统计中有什么是load和fetch之间的区别》经验,为你挑选了1个好方法。

我主要看的是EntityStatics(http://www.hibernate.org/hib_docs/v3/api/org/hibernate/stat/EntityStatistics.html).我可以看到很多提取,加载和更新,我无法找到任何说明它们之间有什么区别的地方.



1> Alex Zuroff..:

通过代码向后工作,获取计数器仅在从数据源检索实体时增加(而不是任何缓存) -

    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;
}

从太多的地方调用加载计数器来跟踪它们,但是无论是从数据源还是缓存,它看起来都会在实体加载时增加.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有