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的名字扩展为 ...
随机推荐
- 用c#开发微信(3)基于Senparc.Weixin框架的接收普通消息处理 (源码下载)
本文讲述使用Senparc.Weixin框架来快速处理各种接收的普通消息.这里的消息指的是传统的微信公众平台消息交互,微信用户向公众号发送消息后,公众号回复消息给微信用户.包括以下7种类型: 1 文本 ...
- Dynamic CRM 2013学习笔记(十四)复制/克隆记录
经常有这样的需求,一个单据上有太多要填写的内容,有时还关联多个子单据,客户不想一个一个地填写,他们想从已有的单据上复制数据,克隆成一条新的记录.本文将介绍如何克隆一条记录,包括它的子单据以生成一条新的 ...
- Dynamic CRM 2013学习笔记(三十)Linq使用报错 A proxy type with the name account has been defined by another assembly
在CRM中使用linq时,有时会报这个错误: A proxy type with the name account has been defined by another assembly. Curr ...
- WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...
- node-webkit教程(9)native api 之Tray(托盘)
node-webkit教程(9)native api 之Tray(托盘) 文/玄魂 目录 node-webkit教程(9)native api 之Tray(托盘) 前言 9.1 Tray简介 9.2 ...
- [汇编] C语言中嵌入汇编
>_<" 下面是在C语言中嵌入汇编的例子,下面是三点要注意的~ 1.内联式汇编 2._asm关键字 3.并不是所有中断都能被支持 #include<iostream> ...
- atitit groovy 总结java 提升效率
atitit groovy 总结java 提升效率 #---环境配置 1 #------安装麻烦的 2 三.创建groovy项目 2 3. 添加 Groovy 类 2 4. 编译运行groovy类 ...
- paip.提升安全性----Des加密 java php python的实现总结
paip.提升安全性----Des加密 java php python的实现总结 /////////// uapi private static String decryptBy ...
- eclipse 打开是报错"reload maven project has encountered a problem"
不需要删除整个 .metadata 如果删除这个代价是重新导入全部项目 D:\eclipse-workspace\.metadata\.plugins\org.eclipse.e4.workbench ...
- 注册表法修改IE8安全级别的方法
最近写客户端工具修复IE浏览器的一些功能,下面是网上找到的东东 1.将当前用户IE安全级别设置为“中”: Windows Registry Editor Version 5.00 [HKEY_CURR ...

(SqlString sql) 