Nhibernate基础
Nhibernate(英文冬眠的意思) 常用方法 |
Contains Evict Clear |
||||||||||||||||
在 NHibernate 中一切必须是 Virtual 的吗? |
http://www.cnblogs.com/aaa6818162/p/4675279.html http://blog.zhaojie.me/2009/09/my-view-of-nhibernate-2-virtually-everything.html 因此,如果是你的话,在写Java代码的时候,是愿意使用getXxx()这样的方法,还是直接访问类中的私有字段?因此我认为,是Java语言的特性,导致Java开发人员倾向于直接访问类中的私有字段,从而导致Hibernate需要避免未加载的私有字段,进一步导致Hibernate的代理类会去覆盖所有的公开方法(只有方法,因为Java语言没有“属性”)——最终,由于NHibernate在“统一大业”上的策略,使得我们.NET开发人员也必须把所有成员标记为virtual,无论是方法还是属性。 |
||||||||||||||||
Nhibernate API |
http://www.cnblogs.com/aaa6818162/p/4639308.html 下图描述了NHibernate的API在分层架构中的作用,下面将进行详细说明。 NHibernate的接口大致分为四类: 1. 被应用程序调用进行基本数据操作(增、删、改、查)的接口。这些接口是应用程序的业务逻辑层和控制层与NHibernate的主要交互点。ISession, ITransaction, IQuery和ICriteria属于此类。 2. 被应用程序用来配置NHibernate的接口。Configuration就属此类。 3. 回调接口。应用程序用回调接口来响应NHibernate中触发的事件。这类接口包括Interceptor, ILifecycle和IValidatable等。 4. 用于扩展NHibernate的强大映射功能的接口。这类接口通常被应用程序的基础架构来实现。IUserType, ICompositeUserType, 和IIdentifierGenerator属于此类。 |
||||||||||||||||
NHibernate Interceptor机制 |
nhibernate是如何自动生成sql语句的 NHibernate 查看生成的sql语句: http://www.cnblogs.com/jiezhi/articles/87414.html http://www.cnblogs.com/JeffreyZhao/archive/2009/10/13/my-view-of-nhibernate-4-interceptor.html |
||||||||||||||||
NHibernate中Session是线程不安全(多线程中Session不能被共享) | http://www.cnblogs.com/aaa6818162/p/4631412.html | ||||||||||||||||
Nhibernate 设置派生属性 |
http://www.cnblogs.com/cnjava/archive/2012/07/21/2602294.html
|
||||||||||||||||
关系数据库中的主键可分为 自然主键(具有业务含义)和代理主键(不具有业务含义) | |||||||||||||||||
Nhibernate锁 数据并发 版本号 | http://www.cnblogs.com/lyj/archive/2008/10/21/1316269.html
|
||||||||||||||||
Nhibernate 一级缓存 |
|||||||||||||||||
NHibernate的Session管理策略 | http://www.cnblogs.com/13yan/archive/2013/05/17/3083552.html
1)在Web应用程序中 一个请求中第一次会打开一个Session并保存再web上下文,以后就不再新打开了 2)在WinForm或单元测试中,使用另一种策略,每个线程用一个Session。 修改hibernate.cfg.xml配置文件,加入一个属性<property name="current_session_context_class">web</property>,修改这个属性就可以修改Session策略。 sessionFactory = new Configuration().Configure() |
||||||||||||||||
NHibernate 怎么样去为我们的实体类设置一个通用的基类 | http://www.cnblogs.com/aaa6818162/p/4631443.html | ||||||||||||||||
hibernate session的flushMode的区别 |
http://blog.csdn.net/looyo/article/details/6309136 http://stackoverflow.com/questions/3295169/nhibernate-flushmode-auto-not-flushing-before-findsession.flushmode=auto /// <summary> Cardtype entity2 = session entity.Cardtypename = "66"; |
||||||||||||||||
NHibernate中Get和Load的区别 | 1.get()采用立即加载方式,而load()采用延迟加载;
get()方法执行的时候,会立即向数据库发出查询语句, 如果加载一个对象的目的是威力访问它的属性,可以用get方法 如果加载一个对象的目的是为了删除它,或者是为了建立于别的对象的关联,可以用load |
||||||||||||||||
域对象在持久化层的三种状态 |
临时状态(Transient):当new一个实体对象后,这个对象处于临时状态,即这个对象只是一个保存临时数据的内存 区域,如果没有变量引用这个对象,则会被jre垃圾回收机制回收。这个对象所保存的数据 与数据库没有任何关系,除非通过Session的save或者SaveOrUpdate把临时对象与数据库 关联,并把数据插入或者更新到数据库,这个对象才转换为持久对象。 持久状态(Persistent): 持久化对象的实例在数据库中有对应的记录,并拥有一个持久化表示(ID)。对持久化对 象进行delete操作后,数据库中对应的记录将被删除,那么持久化对象与数据库记录不再 存在对应关系,持久化对象变成临时状态。持久化对象被修改变更后,不会马上同步到数 据库,直到数据库事务提交。在同步之前,持久化对象是脏的(Dirty)。 游离状态(Detached):当Session进行了Close、Clear或者evict后,持久化对象虽然拥有持久化标识符和与数据 库对应记录一致的值,但是因为会话已经消失,对象不在持久化管理之内,所以处于游离 状态(也叫:脱管状态)。游离状态的对象与临时状态对象是十分相似的,只是它还含有 持久化标识。 总结:我们现在系统默认取出来的对象一直在持久状态 因为session绑定的web上线文 只有请求结束才进行session的close protected void Application_BeginRequest(object sender, EventArgs e) protected void Application_EndRequest(object sender, EventArgs e) |
||||||||||||||||
Nhibernate基础的更多相关文章
- Nhibernate基础使用教程以及简易封装
1.Nhibernate简介 NHibernate是一个面向.NET环境的对象/关系数据库映射工具.对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技 ...
- NHibernate 基础
install-package nhibernate install-package nunit Customer.cs public class Customer { public virtual ...
- 3. NHibernate基础知识 - 你必须知道的一些事情
首先介绍一下框架结构(这个有个概念就可以): 然后我们会介绍一个很重要的概念(一定要好看)!! 这节对 NHibernate 架构做一个介绍,首先要了解一下该框架在应用程序中的位置: 先来一个简单的图 ...
- NHibernate 基础教程
NHibernate之旅系列文章导航 宣传语 NHibernate.NHibernate教程.NHibernate入门.NHibernate下载.NHibernate教程中文版.NHibernate实 ...
- NHibernate官方文档中文版--基础ORM(Basic O/R Mapping)
映射声明 对象/关系映射在XML文件中配置.mapping文件这样设计是为了使它可读性强并且可修改.mapping语言是以对象为中心,意味着mapping是围绕着持久化类声明来建立的,而不是围绕数据表 ...
- NHibernate之映射文件配置说明
NHibernate之映射文件配置说明 1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表 ...
- NHibernate系列文章目录
第一章:NHibernate基础 NHibernate介绍 第一个NHibernate工程 简单的增删改查询 运行时监控 NHibernate配置 数据类型映射 Get/Load方法 NHiberna ...
- NHibernate系列文章二十八:NHibernate Mapping之Auto Mapping(附程序下载)
摘要 上一篇文章介绍了Fluent NHibernate基础知识.但是,Fluent NHibernate提供了一种更方便的Mapping方法称为Auto Mapping.只需在代码中定义一些Conv ...
- [转]NHibernate之映射文件配置说明
1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表名会加上所指定的schema的名字扩展为 ...
随机推荐
- Session为null无法访问
我们在一般处理程序中需要访问Session为null 无法访问和操作 处理方案: 1.导入命名空间 System.Web.SessionState 2.实现IRequiresSessionState ...
- missing locales
原文地址:http://codewut.de/content/missing-locales-under-debian This drives me crazy! Every time I deboo ...
- Android布局中涉及的一些属性
Android:gravity属性 线性布局常见的就是利用LinearLayout进行布局,其中有个比较重要的属性就是android:gravity,在官方文档中是这么描述这个属性的:指定一个元素怎么 ...
- 玩转cocos2d-x lua-binding, 实现c++与lua混合编程
引言 城市精灵GO(http://csjl.teamtop3.com/)是一款基于cocos2d-x开发的LBS社交游戏, 通过真实地图的探索, 发现和抓捕隐匿于身边的野生精灵, 利用游戏中丰富的玩法 ...
- lucene字典实现原理
http://www.cnblogs.com/LBSer/p/4119841.html 1 lucene字典 使用lucene进行查询不可避免都会使用到其提供的字典功能,即根据给定的term找到该te ...
- PHP的错误报错级别设置原理简析
原理简析 摘录php.ini文件的默认配置(php5.4): ; Common Values: ; E_ALL (Show all errors, warnings and notices inclu ...
- Django MVC simple
- duilib进阶教程 -- 设置资源路径 (15)
在前面的教程里,虽然图片都放到了skin文件夹里,但是XML却都在外面,当XML比较多时,就不太好看啦,如下图: 所以需要整理一下,将XML也放入skin文件夹,这样exe的目录就简洁多了: 将XML ...
- java 初学者需注意问题
1.Java为什么能跨平台运行? Java语言编写的程序既是编译型的,又是解释型的.程序代码经过编译之后转换为一种Java字节码的中间语言,Java虚拟机即JVM将对字节码进行解释和运行.编译只进行一 ...
- UICollectionView基础
初始化部分: UICollectionViewFlowLayout *flowLayout= [[UICollectionViewFlowLayout alloc]init]; self.myColl ...