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

Hibernate/NHibernate中的枚举表

枚举表是一种在数据库中存储枚举值的方法。在Hibernate和NHibernate中,枚举表通常用于表示一组固定的值,例如状态、类型等。使用枚举表可以确保数据的一致性和完整性,同时也可以提高查询效率。

在Hibernate和NHibernate中,枚举表的实现方式有以下几种:

  1. 使用@Enumerated注解:在实体类中使用@Enumerated注解来定义枚举类型,Hibernate会自动将枚举值转换为数据库中的整数值。
  2. 使用@CollectionOfElements注解:@CollectionOfElements注解可以将枚举值存储为一个集合,例如List或Set。
  3. 使用@ElementCollection注解:@ElementCollection注解可以将枚举值存储为一个单独的表,并且可以通过外键关联到主表。

总之,枚举表是一种在数据库中存储枚举值的有效方法,可以确保数据的一致性和完整性,同时也可以提高查询效率。在Hibernate和NHibernate中,可以使用@Enumerated、@CollectionOfElements和@ElementCollection注解来实现枚举表。

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

相关·内容

Fluent NHibernate之旅二--Entity Mapping

接着上一篇,今天我们说说ORMMapping。如果你要体验NHibernate强大,首先你就要学会配置,包括SessionFactory和Mapping配置。...一个B2C电子商务,我们一定需要产品和订单,因为是示例,所以尽可能简单,我们先设计两张:Order 和 Product ?...回答是当然需要,因为我们这里属性名与主键名是相同,所以没有进行设置,如果你数据库主键名是ID,这里我们只需要Id(m => m.ProductID).ColumnName(“ID”),你可以看到上述映射中...映射做好了,接下来我们在NHibernate把映射加到配置。...在Order实体,我们看到了订单状态我用了OrderState枚举类型,数据库存储类型为tinyint,对于它映射,我们只需要: public class OrderMap : ClassMap<Order

98790

SpringbootHibernate根据名获取model类

需求是:知道名,需要获取到该对应实体类。为毛有这么奇怪需求呢,是这样,在别的文件里,存放了数据名,和一条数据json串。...我需要根据这些信息,将这条数据通过Hibernate插入到库里。 我知道了json串,但不知道把它转成什么样实体类,所以我需要名对应class信息。...factory.unwrap(SessionFactory.class) == null) { throw new NullPointerException("factory is not a hibernate...我项目里有这么一个entity,会被Hibernate记录到ClassMetadata里,通过上面的方式就能获取到名和类对应关系。...参考:https://stackoverflow.com/questions/25063995/spring-boot-handle-to-hibernate-sessionfactory#

1.6K20

NHibernate学习笔记之一,Hello world!

Nhibernate 来源于非常优秀基于JavaHibernate 关系型持久化框架。...2、新建项目并添加引用,将NHibernate-3.3.0.GA-bin“Iesi.Collections.dll”与“NHibernate”引用到项目中,如图2所示复制Configuration_Templates...文件夹对应数据库配置文件,这里使用MSSQL,所以复制“MSSQL.cfg.xml”,并对NHibernate配置信息适当修改 。...“嵌入资源” 图3 5、定义NHibernateHelper帮助类,Isession是NHibernate工作单元,它是一个持久化管理器,我们通过ISession来从数据库存取数据。...Nhibernate学习资源远比不上Hibernate,性能不如ADO.NET,但它能是.NET平台中比较优秀一个ORM框架之一,Hibernate还有很长路要走。学习笔记而以,请大家海涵。

57620

NHibernate教程

大家好,又见面了,我是你们朋友全栈君。 一、NHibernate简介 在今日企业环境,把面向对象软件和关系数据库一起使用可能是相当麻烦、浪费时间。...NHibernate除了能将一张映射为一个对象,还可以将间关系变为对象属性。例如学生和课程间多对多关系就可以转化为学生类一个课程集合属性。...配置NHibernate (1)NHibernate配置文件有两种:在桌面应用程序(WinForm)为App.config,在网页应用程序(WebForm)为web.config。...> (2) 含有关系情况 含有关系指的是像学生这样,除了保存学生基本信息,还希望把选课信息保存到学生。...这样情况下不能用软件来辅助产生对应类和XML,这是NHibernate唯一需要费脑筋学地方。

33110

Nhibernate_nhibernate与ef区别

NHibernate是一个基于.Net,用于关系数据库对象持久化类库.它是著名Hibernate.Net版本....NHibernate用于把你.Net对象持久化到底层关系数据库.你完全不用自己编写Sql语句去操作这些对象,NH会代替你做.你代码里面只需要关心这些对象,NH生成sql语句并能为你取到正确东西...这里是我们要做: 1. 在数据库创建把.Net类持久化对应. 2. 创建需要被持久化.Net类. 3....步骤1:创建数据库 我们正在做是一个非常简单NH示例.在这个例子里面,我们实现一个基本用户管理子系统.我们将会使用一个user(sql server 2000): use NHibernate...> 让我们来看看这个有趣映射文件:第一个tag是class,这里我们把类型名(类名和Assembly名)映射到数据库user(这里和hibernate有些不同,我们必须告诉NH这个类从哪儿来.

55330

NHibernate总结

NHibernate不仅仅管理.NET 类到数据库映射(包括.NET 数据类型到SQL 数据类型映射),还提供数据查询和获取数据方法,大幅度减少我们开发时人工使用SQL和ADO.NET处理数据时间...,其中People实体类字段要设置为virtual。每个文件详细代码在下面介绍 (2)     在NH.Data层引用Nhibernate相关DLL ?...首先,我们要从ISessionFactory获取一个ISession(NHibernate工作单元)。ISessionFactory可以创建并打开新Session。...ISessionFactory通常是个线程安全全局对象,只需要被实例化一次。我们可以使用GoF23单例(Singleton)模式在程序创建ISessionFactory。...virtual,要不然会报错 (4)     下面我们开始为People实体类进行数据库映射配置People.hbm.xml NHibernate要知道怎样去加载和存储持久化类对象。

89140

Nhibernate_juan benet

大家好,又见面了,我是你们朋友全栈君。 什么是NHibernate? NHibernate是一个基于.Net,用于关系数据库对象持久化类库.它是著名Hibernate.Net版本....NHibernate用于把你.Net对象持久化到底层关系数据库.你完全不用自己编写Sql语句去操作这些对象,NH会代替你做.你代码里面只需要关心这些对象,NH生成sql语句并能为你取到正确东西...在数据库创建把.Net类持久化对应. 2. 创建需要被持久化.Net类. 3. 创建映射文件,以告诉NH怎样持久化这些类属性. 4....步骤1:创建数据库 我们正在做是一个非常简单NH示例.在这个例子里面,我们实现一个基本用户管理子系统.我们将会使用一个user(sql server 2000): use NHibernate...> 让我们来看看这个有趣映射文件:第一个tag是class,这里我们把类型名(类名和Assembly名)映射到数据库user(这里和hibernate有些不同,我们必须告诉NH这个类从哪儿来.

35550

hibernate对单增删改查

ORM: 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping) 实现对单增删改查 向区域增加数据: 第一步: 新建一个Dao...Hibernate.cfg.xml文件,会自动增加一条自动提交代码 true 当设置了事务自动提交功能后...第二步: 新建一个类TestUi: 在区域查询数据: 第一步: 新建一个Dao: public List select(){ String sql="from Emp where...get方法查询: Dao查询方法中使用: Emp emp=(Emp)session.get(Emp.class,"按主键查询,这里写要查询数据主键值") 查找另一个方法load方法 把get改成...总结: get和load区别: 1)load先去找缓存, 如果缓存没有数据,那就去数据库查。 2)get是先去找数据库,不过load不可控,最好用get

45430

C# 数据操作系列 - 12 NHibernate增删改查

之前提到NHibernate继承了Hibernate一些传统:使用XML文件进行配置,这一点也是备受争议。...NHibernate映射文件 对于NHibernate映射文件有个约定名字: .hbm.xml 这里先为大家介绍一下映射文件格式: 1.1 hibernate-mapping 说明 <hibernate-mapping...接下来,让我们探索class如何映射成。 1.2.1 id 任何一个映射都必须声明一个数据主键,大多数类也必须有一个唯一标示字段用来区分不同实例。...column:对应数据列名 type:数据库类型 1.2.3 many-to-one 在Nhibernate,多对一配置是在一一端,表示该类有一个外键导航。...,不同地方在于一对一需要在双方映射关系里均要维护,在有外键/实体 添加 constrained=“true”。

1.1K20

NHibernate介绍「建议收藏」

相比较而言,有些ORM解决方案需要特殊属性,或者是基于模型对象,这些对象又是从特定基类中继承而来。 在NHibernate不用特殊修饰就可以让对象和持久化层交互。...创建NHibernate映射文件 Nhibernate使用XML映射文件来映射POCO到数据库对象。虽然在很多案例这可能是一对一关系,但这并不是必定。...> 在hibernate-maping标签,同时引用类集(POCOs)所属程序集命名空间。...class元素表示到单个POCO映射。name表示上面的程序集和命名空间中类名,table属性告诉NHibernate数据库哪个或者视图将被映射。...id元素告诉NHibernate哪个数据库字段和对应对象作为一个唯一键来使用。在本例,我们使用Id这个字段。 generator元素告诉NHibernate怎样给新实体来创建唯一ID。

62120

hibernate 对象状态

session对象状态 ? 1. 临时态 存在于jvm,却不存在于数据库对象,适合以下情况: 1. 使用new关键字实例化出来对象,还未保存到数据库; 2....从数据库已经删除了对象,还存在于jvm时。(delete方法调用后) 2. 持久态 存在于jvm,也存在于数据库记录,session未关闭,保持着对象与记录同步,适合以下情况: 1....将jvm存在对象保存或同步到数据库记录后对象状态。(save、update方法调用后) 注: session中有一个map存放着被托管对象,也就是hibernate以及缓存对象来源。...当应用程序调用org.hibernate.Transactioncommit()方法时候,commit()方法先清理缓存,然后再向数据库提交事务。...Hibernate之所以把清理缓存时间点安排在事务快结束时,一方面是因为可以减少访问数据库频率,还有一方面是因为可以尽可能缩短当前事务对数据库相关资源锁定时间。

1.4K50
领券