NHibernate 映射关系

基本映射关系如下:


NHibernate类型


.NET类型


Database类型


备注


AnsiChar


System.Char


DbType.AnsiStringFixedLength - 1 char


Boolean


System.Boolean


DbType.Boolean


在没有指定类型(type) 属性时的默认值。


Byte


System.Byte


DbType.Byte


在没有指定类型(type) 属性时的默认值。


Char


System.Char


DbType.StringFixedLength - 1 char


在没有指定类型(type) 属性时的默认值。


DateTime


System.DateTime


DbType.DateTime - ignores the milliseconds


在没有指定类型(type) 属性时的默认值。


Decimal


System.Decimal


DbType.Decimal


在没有指定类型(type) 属性时的默认值。


Double


System.Double


DbType.Double


在没有指定类型(type) 属性时的默认值。


Guid


System.Guid


DbType.Guid


在没有指定类型(type) 属性时的默认值。


Int16


System.Int16


DbType.Int16


在没有指定类型(type) 属性时的默认值。


Int32


System.Int32


DbType.Int32


在没有指定类型(type) 属性时的默认值。


Int64


System.Int64


DbType.Int64


在没有指定类型(type) 属性时的默认值。


PersistentEnum


System.Enum


潜在类型对应的DbType


不用在映射文件指定type="PersistentEnum".而是提供枚举的程序集全名, 让NHibernate用反射来猜测类型。枚举使用的潜在类型决定适当的DbType.。


Single


System.Single


DbType.Single


在没有指定类型(type) 属性时的默认值。


Ticks


System.DateTime


DbType.Int64


type="Ticks"必须被指定。


TimeSpan


System.TimeSpan


DbType.Int64


在没有指定类型(type) 属性时的默认值。


Timestamp


System.DateTime


DbType.DateTime - 取决于数据库支持


type="Timestamp"必须被指定。


TrueFalse


System.Boolean


DbType.AnsiStringFixedLength -一个字符,‘Y‘ 或者‘N‘


type="TrueFalse"必须被指定。


YesNo


System.Boolean


DbType.AnsiStringFixedLength -一个字符,‘Y‘ 或者‘N‘


type="YesNo"必须被指定。

2.应用类型映射


NHibernate Type


.NET Type


Database Type


Remarks


AnsiString


System.String


DbType.AnsiString


type="AnsiString"必须被指定。


CultureInfo


System.Globalization.CultureInfo


DbType.String -表明文化(culture)的5个字符


在没有指定类型(type) 属性时的默认值。


Binary


System.Byte[]


DbType.Binary


在没有指定类型(type) 属性时的默认值。


Type


System.Type


DbType.String保存应用程序集权限定名。


在没有指定类型(type) 属性时的默认值。


String


System.String


DbType.String


在没有指定类型(type) 属性时的默认值。

3.二进制类型映射


Hibernate Type


.NET Type


Database Type


Remarks


StringClob


System.String


DbType.String


type="StringClob"必须被指定。 整个字段在内存里可读。


BinaryBlob


System.Byte[]


DbType.Binary


type="BinaryBlob"必须被指定。 整个字段在内存里可读。


Serializable


Any System.Object 必须标注可序列化标签


DbType.Binary


type="Serializable" 应该被指定. 如果不能为属性找到NHibernate类型,这是最后可依靠的类型。

原文来自:http://www.cnblogs.com/GoodHelper/archive/2011/02/24/nhibernate06.html

时间: 2024-10-13 02:29:54

NHibernate 映射关系的相关文章

NHibernate 映射基础(第三篇) 简单映射、联合主键

NHibernate 映射基础(第三篇) 简单映射.联合主键 NHibernate完全靠配置文件获取其所需的一切信息,其中映射文件,是其获取数据库与C#程序关系的所有信息来源. 一.简单映射 下面先来一个简单的例子,然后随着不断地对这个例子修修改改,从而真正了解映射文件.具体的资料可以查看http://www.cnblogs.com/kissdodog/archive/2013/02/21/2919886.html 先来看一张表: 映射文件Product.hbm.xml: <?xml versi

Hibernate的七种映射关系之七种关联映射(二)

继续上篇博客 七.Hibernate双向一对多关联映射:让多的一端来维护关系. 主要是解决一对多单向关联的缺陷,而不是需求驱动的. 1.在Student.java实体类里添加Classes引用.private Classes classes; 2.Student.hbm.xml里添加many-to-one标签:<many-to-one name="classes" column="classesid"/>.Classes.hbm.xml在例子(六)里的那

Hibernate的七种映射关系之七种关联映射(一)

关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用. 一.Hibernate多对一关联映射:就是在"多"的一端加外键,指向"一"的一端. 比如多个学生对应一个班级,多个用户对应一个级别等等,都是多对一关系. 1."多"端实体加入引用"一"端实体的变量及getter,setter方法. 比如说多个学生对应一个班级,在学生实体类加入:private Grade grade; 2."多"端配置文

Struts2框架下表单数据的流向以及映射关系

本例框架很简单:默认页面为用户登录界面login.jsp,提交后由action类LoginAction.java来判断成功或失败,登录结果分别由success.jsp和failure.jsp呈现. 一. 相关文件目录 1.web.xml的目录:StrutsTest\WebContent\WEB-INF\web.xml. 2.struts.xml的目录:StrutsTest\WebContent\WEB-INF\classes\struts.xml. 3.LoginAction的目录:Struts

Hibernate基本配置:类与表之间的映射关系

只介绍用Annotation的方式进行映射关系的配置. 1. 如果表名与对象名不一致,则要对表名进行配置. 使用@Table 2. 如果字段名与属性名不一致. 使用@Column 3. 不需要persistentence的字段 使用@Persistentence 4.映射日期与时间类型,指定时间精度 使用@Temporal 默认会直接记录日期与时分秒,可以进行定制. @Temporal(TemporalType.?),?可以取3个值,DTAE(只记录日期),TIME(记录时分秒),TIMESTA

Hibernate4.x之映射关系--一对一映射

Hibernate的1-1映射关系主要分为两类: 1.Hibernate基于外键映射的1对1关联关系 对于基于外键的1-1关联,其外键可以存放在任意一边,在需要存放外键一端,增加many-to-one元素.为many-to-one元素增加unique="true"属性表示为1-1关联 1 <many-to-one name="mgr" class="com.yl.hibernate.one2one.foreign.Manager" colu

Hibernate4.x之映射关系--单向一对多

在领域模型中,类与类之间最普遍的关系就是关联关系在UML中,关联是有方向的 以Customer和Order为例:一个用户能发出多个订单,而一个订单只能属于一个客户.从Order到Customer的关联是多对一关联:而从Customer到Order是一对多关联 单向n-1 单向n-1关联只需从n的一端可以访问到1的一端 域模型:从Order到Customer的多对一单向关联需要在Order类中定义一个Customer属性,而在Customer类中无需定义存放Order对象的集合属性 关系数据模型:

MyBatis --- 映射关系【一对一、一对多、多对多】,懒加载机制

映射(多.一)对一的关联关系 1)若只想得到关联对象的id属性,不用关联数据表 2)若希望得到关联对象的其他属性,要关联其数据表 举例: 员工与部门的映射关系为:多对一 1.创建表 员工表 确定其外键是部门表的 id DROP TABLE IF EXISTS emp; CREATE TABLE emp( id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, emp_name VARCHAR(255) DEFAULT NULL, gender CHAR(1

Hibernate学习8—Hibernate 映射关系(多对多)

第二节:Hibernate 多对多映射关系实现 比如学生和课程是多对多的关系: 一个学生可以选多个课程: 一个课程可以被多个学生选中,所以是多对多的关系: 1,多对多单向实现: 单向关系: 这里通过学生可以获取这个学生选修的课程: 但是通过课程无法获取选修这门课程的学生: Student.java: package com.cy.model; import java.util.HashSet; import java.util.Set; public class Student { privat