Nhibernate使用过程中记录的一些小知识

来源:互联网 发布:mysql数据库5.5下载 编辑:程序博客网 时间:2024/06/05 02:40

一、关于延时加载

        Nhibernate默认是开了延时加载的,若设置关闭延时加载,关联的数据会立即加载。



       如上图所示,若开了延时加载,获取Equipment对象时,不能直接通过该对象获取关联的Communicator对象的属性,若没有开延时加载则可以直接获取。在开启延时加载的情况下,想要通过Equipment对象获取关联的Communicator对象的属性,可以在查询语句中通过join fetch关键字获取。语句如下所示:



二、关于Nhibernate二级缓存

       为提高性能,在使用Nhibernate时,可以使用二级缓存,将从数据库中查找到的数据保存到内存中。数据第二次查找时先从缓存中查找,找不到时才到数据库中查找。在hibernate.cfg.xml配置文件中,配置二级缓存,具体配置如图所示:


       使用第三方程序提供二级缓存(memcached.exe),若配置并启用了二级缓存,但是没有安装二级缓存,使用Nhibernate Profiler工具可以捕获到警告:Warn: could nor save...(提示保存二级缓存失败)。Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
原创粉丝点击