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的名字扩展为 ...
随机推荐
- windows上自动设置java环境变量的脚本
近期打算学习安卓开发,于是乎要准备java开发环境,安装好jdk后,就要设置java环境变量,java环境变量要设置JAVA_HOME,Path,CLASSPATH三个值,每次配置查百度复制粘贴都很麻 ...
- 12 个 Web 设计师必备的 Bootstrap 工具
转自:http://www.oschina.net/translate/12-best-bootstrap-tools-for-web-designers Bootstrap是一个非常棒的前端网站开发 ...
- C#设计模式(19)——状态者模式(State Pattern)
一.引言 在上一篇文章介绍到可以使用状态者模式和观察者模式来解决中介者模式存在的问题,在本文中将首先通过一个银行账户的例子来解释状态者模式,通过这个例子使大家可以对状态者模式有一个清楚的认识,接着,再 ...
- 享受LINQ:判断一组文字是否在字符串中同时出现的最简单方法
需求是这样的:不允许在一个字符串中同时出现"博", "客", "园", "团", "队"这5个文字. ...
- WEB项目后端跨域请求
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...
- Python模拟HTTP Post上传文件
使用urllib2模块构造http post数据结构,提交有文件的表单(multipart/form-data),本示例提交的post表单带有两个参数及一张图片,代码如下: #buld post bo ...
- Twitter API升级至1.1
Twitter API 1.1是至今最大的一次升级,从3月份提出,到6月11日1.0版本已经全面停止调用.关于1.1版本升级特性可访问: https://dev.twitter.com/docs/ap ...
- 亚马逊云服务之CloudFormation
亚马逊的Web Service其实包含了一套云服务.云服务主要分为三种: IaaS: Infrastructure as a service,基础设施即服务. PaaS: Platform as a ...
- spring常用jar包总结(转载)
spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-m ...
- 仿Material UI框架的动画特效
Material UI是一款功能非常强大,界面却十分清新简洁的CSS框架,Material UI利用了Google的Material Design 全新设计语言,并且让每一个UI组件都变得非常独立,因 ...

(SqlString sql) 