首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NHibernate刷新/保存/更新不持久

NHibernate是一个开源的对象关系映射(ORM)框架,用于将面向对象的编程语言中的对象与关系型数据库中的数据进行映射。它提供了一种简化数据库操作的方式,使开发人员能够更专注于业务逻辑的实现。

在NHibernate中,刷新(Flush)、保存(Save)和更新(Update)是三个常用的操作。

  1. 刷新(Flush):刷新操作用于将当前会话中的所有未持久化的更改同步到数据库中。它会执行以下操作:
    • 将所有未持久化的实体对象插入到数据库中。
    • 更新已经存在于数据库中的实体对象的状态。
    • 删除已经被标记为删除的实体对象。

NHibernate提供了多种刷新策略,如自动刷新、手动刷新等,开发人员可以根据具体需求选择合适的策略。

  1. 保存(Save):保存操作用于将一个新的实体对象持久化到数据库中。它会执行以下操作:
    • 将实体对象插入到数据库中。
    • 分配一个唯一的标识符给实体对象。

NHibernate提供了多种保存方法,如Save、SaveOrUpdate等,开发人员可以根据具体需求选择合适的方法。

  1. 更新(Update):更新操作用于更新数据库中已存在的实体对象的状态。它会执行以下操作:
    • 更新数据库中已存在的实体对象的属性值。

NHibernate提供了多种更新方法,如Update、Merge等,开发人员可以根据具体需求选择合适的方法。

NHibernate的优势包括:

  • 简化数据库操作:NHibernate提供了一种面向对象的方式来进行数据库操作,使开发人员能够更专注于业务逻辑的实现,而不需要编写大量的SQL语句。
  • 跨数据库支持:NHibernate支持多种数据库,包括MySQL、Oracle、SQL Server等,使开发人员能够在不同的数据库平台上进行开发和部署。
  • 缓存支持:NHibernate提供了缓存机制,可以提高数据库访问的性能和响应速度。
  • 映射灵活性:NHibernate支持灵活的对象关系映射配置,开发人员可以根据实际需求进行配置,以满足不同的业务需求。

NHibernate在以下场景中得到广泛应用:

  • 企业级应用程序开发:NHibernate可以帮助开发人员快速、高效地进行数据库操作,适用于各种规模的企业级应用程序开发。
  • 数据驱动的应用程序开发:NHibernate可以将数据库中的数据映射为对象,使开发人员能够以面向对象的方式进行应用程序开发。
  • 高并发系统:NHibernate的缓存机制可以提高数据库访问的性能和响应速度,适用于高并发的系统开发。

腾讯云提供了一系列与NHibernate相关的产品和服务,包括云数据库MySQL、云服务器、云缓存Redis等。您可以通过以下链接了解更多信息:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

hibernate persist update 方法没有正常工作(不保存数据,更新数据)

问题描述 在工程中通过spring aop的方式配置事务,使用hibernate做持久化。...在代码实现中使用hibernate persit()方法插入数据到数据库,使用hibernate update()方法更新数据。问题是执行这两个方法没有报错,但是也没有插入数据或者更新数据。...更新一条记录India-->zhongguo:null =================save2()================== ================update2()====...更新一条记录India-->zhongguo:null =================save3()================== Hibernate: insert into PERSON...更新一条记录India-->zhongguo:id=8, name=Pankaj, country=zhongguo 原因分析 一共有三个测试例子,第一个例子test1()方法,调用save1()方法,

2.3K10

Nhibernate_juan benet

什么是NHibernate? NHibernate是一个基于.Net,用于关系数据库的对象持久化类库.它是著名的Hibernate的.Net版本....开发过程 HNibernate将会有一些工具帮助你,如:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者的建议).然而,在本文档中,前提是你已经手动的数据库的创建喝...步骤2:创建.Net类: 当我们这样一堆的用户的时候,我们需要某种对象来保存.NH是通过reflection对象的属性来工作的,所以我们给需要持久化的对象添加属性.一个对应于上面数据库结构的类可以写成这个样子...告诉Configuration你想要持久化哪一种对象. 3. 创建一个Session连接到你设定的数据库. 4. 载入,保存和查询你的对象. 5....本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

35650

C# 数据操作系列 - 11 NHibernate 配置和结构介绍

ISession - NHibernate.ISession: 一个单线程、短生命周期的对象,表示从应用程序和数据持久化之间一个连接。...实例状态 在NHibernate中,一个可持久化的对象有三种不同的状态,依据与持久化上下文之间的关系不同,其中ISession就是一个持久化上下文。...默认是直接加载导航属性,基于延迟加载的逻辑,由实际使用时才从数据库中加载数据。...默认是空,表示不会强制更新数据库。有几个候选值:create或create-drop、update等。...create表示每次只创建新增的;create-drop表示每次ISessionFactory创建时创建表 ,ISessionFactory关闭时,删除表;其中update表示每次都会将DDL SQL更新到数据库中

1.1K20

Nhibernate_nhibernate与ef区别

NHibernate是一个基于.Net,用于关系数据库的对象持久化类库.它是著名的Hibernate的.Net版本....开发过程 HNibernate将会有一些工具帮助你,如:生成schema,根据映射文件(Mapping file)生成类,并更新schema(一个新开发者的建议).然而,在本文档中,前提是你已经手动的数据库的创建喝...步骤2:创建.Net类: 当我们这样一堆的用户的时候,我们需要某种对象来保存.NH是通过reflection对象的属性来工作的,所以我们给需要持久化的对象添加属性.一个对应于上面数据库结构的类可以写成这个样子...告诉Configuration你想要持久化哪一种对象. 3. 创建一个Session连接到你设定的数据库. 4. 载入,保存和查询你的对象. 5....现在你可以以.net的方式对待这些对象.想在数据库中保存一个新的user?

55530

NHibernate详解

什么是NHibernateNHibernate 是一个基于.Net 的针对关系型数据库的对象持久化类库。...Nhibernate 来源于非常优秀的基于Java的Hibernate 关系型持久化工具。 NHibernate 从数据库底层来持久化你的.Net 对象到关系型数据库。...开发的过程: 1.新建一个将要持久化.Net对象的表 2.构建一个需要被持久化的.Net类 3.构建一个可以让NHibernate知道如何持久化对象属性的映射文件...第二步:产生一个.Net 类文件 当内存中有一堆User对象的时候,我们需要某种对象去保存它们。NHibernate通过对象属性的反射来工作,因此我们需要添加我们希望持久化的对象属性。...type属性是可选的(如果你标明,NHibernate将利用反射进行最佳的推测)。

54730

NHibernate 缓存

一级缓存管理 一级缓存的管理也是很简单的, 可以通过下面的三个方法管理: session.Evict 从一级缓存中删除指定的实例; session.Clear 清空一级缓存, 不会保存修改的内容; session.Contains...include:可选,默认值为all,当取non-lazy时设置延迟加载的持久化实例的属性不被缓存。 usage:声明缓存同步策略,就是上面说明的四种缓存策略。...查询二级缓存配置 Cacheable 为一个查询显示启用二级缓存; CacheMode 缓存模式, 有如下可选: Ignore:更新数据时将二级缓存失效,其它时间不和二级缓存交互 Put:向二级缓存写数据...,但不从二级缓存读数据 Get:从二级缓存读数据,仅在数据更新时向二级缓存写数据 Normal:默认方式。...从二级缓存读/写数据 Refresh:向二级缓存写数据,想不从二级缓存读数据,通过在配置文件设置 cache.use_minimal_puts从数据库中读取数据时,强制二级缓存刷新 CacheRegion

57811

Nhibernate入门与demo

学习和使用Nhibernate已经很久了,一直想写点东西和大家一起学习使用Nhibernate。博客园里也有很多大牛写了很多关于Nhibernate入门的文章。...看下面代码: User myUser = new User(); //User初始化........ session.Save(myUser);//保存一个用户 session.Update(myUser...);//更新用户 session.Delete(myUser);//删除用户 User user = session.Get(Id) as User;//根据主键获取用户的 用户实例      ...Nhibernate带给我们的就是:对于开发者通常的数据持久化相关的编程任务,解放其中的95%! 第三个问题:      这是本文的关键,是怎么搭建呢?     ...session.Save(myUser); session.Flush(); session.Delete(User);      查看数据库中,有没有一条数据保存

32030

C#——Nhibernate探索

C#—Nhibernate探索 本篇文章,让我们一起来探索Nhibernate。 首先我们去搜索Nhibernate下载地址,如下链接所示。 该版本可能是最新版,我下载的4.0.4.GA。...一、建立了一个类库程序,引用Iesi.Collections.dll和NHibernate.dll两个DLL。  接下来,我们开始建立持久化对象。...public virtual int Id { get; set; } public virtual string Name { get; set; } } 接下来建立持久化对象与数据库的映射...调查结果: 对象与数据库的映射是保存在XML文件中的,于是我配置XML映射文件如下。 该XML文件的属性,要求设置其生成操作为【嵌入的资源】。 但我怕它丢失,还给他设置了始终复制的属性。...然后,我们建立domain(域),添加对Text持久化对象的增删改查的方法。

47230

NHibernate 缓存

一级缓存管理 一级缓存的管理也是很简单的, 可以通过下面的三个方法管理: session.Evict 从一级缓存中删除指定的实例; session.Clear 清空一级缓存, 不会保存修改的内容; session.Contains...include:可选,默认值为all,当取non-lazy时设置延迟加载的持久化实例的属性不被缓存。 usage:声明缓存同步策略,就是上面说明的四种缓存策略。...查询二级缓存配置 Cacheable 为一个查询显示启用二级缓存; CacheMode 缓存模式, 有如下可选: Ignore:更新数据时将二级缓存失效,其它时间不和二级缓存交互 Put:向二级缓存写数据...,但不从二级缓存读数据 Get:从二级缓存读数据,仅在数据更新时向二级缓存写数据 Normal:默认方式。...从二级缓存读/写数据 Refresh:向二级缓存写数据,想不从二级缓存读数据,通过在配置文件设置cache.use_minimal_puts从数据库中读取数据时,强制二级缓存刷新 CacheRegion

42810

Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发

FN之旅四至今已经4年多,至今还未更新过此系列,原因有很多,最大的就是懒惰,哈。...说个题外话,NuGet真心不错,至少已经做新项目的时候不用到处去整理lib包了,从NuGet进行下载、更新、卸载都很方便,而且还能自搭建自己公司的服务器,不过目前还是有些问题,有时候在下载最新包无法使用的情况下...不过建议把它用在稍大的项目里,我们的项目数据库会随着项目需求的增加和改变会经常修改的,建议用专业的数据库管理,比如Migrator,有兴趣下次可以开篇介绍下,用下来还是不错的。...,AutoMapping是有很多限制的,比如Id,比如Component等,当然我们可以通过重写DefaultAutomappingConfiguration的一些方法来进行合适的一些配置,如果您要对持久类有一些要求...Fluent Nhibernate确实是个好东西,让我在开发上省去了很多时间,今天虽然介绍了AutoMapping,但我推荐您在您的项目中使用,用起来没手感(个人感觉),需要约定的东西太多了,对于数据库结构也得按照他的契约来

92660

Hibernate之初体验

其实对于对象来说就是持久化。...(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。...持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。 持久化是将程序数据在持久状态和瞬时状态间转换的机制。 JDBC就是一种持久化机制。...Hiberante也是持久层的框架,而且持久层的框架还有很多,比如:IBatis,Nhibernate,JDO,OJB,EJB等等。...缺点: 1、使用数据库特性的语句,将很难调优 2、对大批量数据更新存在问题 3、系统中存在大量的攻击查询功能 总结:       Hibernate可以使我们采用对象化的思维操作关系型数据库

57370
领券