Hibernate的映射文件(hbm.xml)属性说明
1.class 节点
name: 类名
table: 类对应表名,默认为类名称
dynamic-update: 生成更新字段时,只包含发生变动的字段,默认为false。
dynamic-insert: 生成insert语句时仅包含非null字段
Proxy: 代理类,默认为空
discriminator-value: 子类辨别标识用于多态支持
where: 通过限定条件查询结果集。如:查询有籍在校学生的信息可以使用"where studentstatus='0'"
2.id节点
1.column 字段名称
2.type 字段类型
3.length 字段长度
4.unsaved-value 用于判断对象值是否已经保存
5.generator-class 主键产生方式
assigned
hilo
seqhilo
increment
identity
sequence
native
uuid.hex
uuid.string
foreign
---------------------------------------------------------------------------------------------------------------
主键产生方式说明
increment(递增)
用于为long, short或者int类型生成唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。在集群下不要使用。
identity
对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。返回的标识符是long, short 或者int类型的。
sequence (序列)
在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence),而在Interbase中使用生成器(generator)。返回的标识符是long, short或者 int类型的。
hilo (高低位)
使用一个高/低位算法来高效的生成long, short或者 int类型的标识符。给定一个表和字段(默认分别是是hibernate_unique_key 和next_hi)作为高位值得来源。高/低位算法生成的标识符只在一个特定的数据库中是唯一的。在使用JTA获得的连接或者用户自行提供的连接中,不要使用这种生成器。
seqhilo(使用序列的高低位)
使用一个高/低位算法来高效的生成long, short或者 int类型的标识符,给定一个数据库序列(sequence)的名字。
uuid.hex
用一个128-bit的UUID算法生成字符串类型的标识符。在一个网络中唯一(使用了IP地址)。UUID被编码为一个32位16进制数字的字符串。
uuid.string
使用同样的UUID算法。UUID被编码为一个16个字符长的任意ASCII字符组成的字符串。不能使用在PostgreSQL数据库中
native(本地)
根据底层数据库的能力选择identity, sequence 或者hilo中的一个。
assigned(程序设置)
让应用程序在save()之前为对象分配一个标示符。
foreign(外部引用)
-------------------------------------------------------------------------------------------------------------------------
3.property 节点
1.column 数据库表字段名称
2.type 类型
3.length 长度
4.not-null 字段是否允许为空
5.unique 字段是否允许唯一(是否允许重复值)
6.insert insert操作时,是否允许包含本字段数值
7.update update操作时,是否包含本字段数据
====================================================================
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="com.oreilly.hh.Track" table="TRACK">
<meta attribute="class-description">
Represents a single playable track in the music database.
@author Jim Elliot(with help from Hibernate)
</meta>
<id name="id" type="int" column="TRACK_ID">
<meta attribute="scope-set">protected</meta>
<generator class="native"/>
</id>
<property name="title" type="string" not-null="true"/>
<property name="filePath" type="string" not-null="true"/>
<property name="playTime" type="time">
<meta attribute="field-description">Playing time</meta>
</property>
<property name="added" type="date">
<meta attribute="field-description">When the track was created</meta>
</property>
<property name="volume" type="short" not-null="true">
<meta attribute="field-description">How loud to play the track</meta>
</property>
</class>
</hibernate-mapping>
说明如下:
1.<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
用于导言说明,说明它的文件格式定义。
2.<hibernate-mapping>标签里是真正的映射。
3.<class name="com.oreilly.hh.Track" table="TRACK">
定义一个类com.oreilly.hh.Track的映射。(可以定义任意多个类在一个映射文件里)。表示存在数据库表TRACK中。
4. <meta attribute="class-description">
Represents a single playable track in the music database.
@author Jim Elliot(with help from Hibernate)
</meta>
定义了说明,可以被JavaDoc读取。
5. <id name="id" type="int" column="TRACK_ID">
<meta attribute="scope-set">protected</meta>
<generator class="native"/>
</id>
定义了类属性和数据库表列的映射。 <generator class="native"/>是表示ID生成策略,此种策略有多种。
6. <property name="volume" type="short" not-null="true">
<meta attribute="field-description">How loud to play the track</meta>
</property> 定义了说明,可以被JavaDoc读取。
分享到:
相关推荐
请输入包的名称和映射文件需要放到的文件夹之后运行CreateTableXml里的main方法,就可以自动生成映射文件了。记着刷新文件夹,要不然是看不到的。 当然只是一些基础的属性。对于一些比较复杂,还是需要自己来修改的...
以hibernate-tools-5.2.1.Final.jar为例,5.0以下的版本尚未验证
主要介绍通过Hibernate不用别的插件,逆向生成实体类的方法,包括标签注解映射和hbm.xml文件映射两种
高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...
高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...
根据实体类生成简单的Hibernate映射文件,对不用Myeclipse的童鞋还是有用
CodeSmith针对NHibernate的.hbm.xml映射文件的生成模板,有单个表和整个数据库的模板
都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用xml文件来映射更具有可读性,自我感觉以后Hibernate Annotation的映射方式将代替hibernate 的*.hbm.xml映射方式
主要介绍了Hibernate使用hbm.xml配置映射关系解析,具有一定参考价值,需要的朋友可以了解下。
修改了Hibernate的源码,可动态增加映射文件
Hibernate知识文档: 一、第一个hibernate项目 ...5、定义User实体类的映射文件User.hbm.xml 6、将User.hbml.xml文件加入到hibernate.cfg.xml文件中 7、编写hbm2ddl工具类,将实体映射导出表 8、开发客户端
此压缩包内有两文件,一个是hibernate的核心配置文件hibernate.cfg.xml,一个是实体映射文件*.hbm.xml,在配置hibernate文件时需要用到头部的约束,还有在配置没提示时需要用到(附带使用方法)。
Hibernate开发过程(单一映射体) ...2创建映射文件XXXX.hbm.xml(包,类,id,字段) 3创建配置文件Hibernate.cfg.xml 4位置:映射文件于持久类同名且放在同一个包中。配置文件发在工程根目录下 5创建数据表 6测试
如何使用Myeclipse生成映射文件和实体类? 映射文件和实体类《=========》...选择要生成的文件hbm.xml,POJO,DAO(一般不选) j.选择映射类型,一般选择Hibernate Types k.点表名可以设置实体类名和主键生成方法 l.完成
(一)实验目的 1、 掌握 Hibernate 开发环境搭建的基本步骤; 2、 观察持久化类与数据库表的映射关系,观察相应的 ...3、 观察 Hibernate 配置文件(hibernate.cfg.xml)中的主要元素及属性配置,并能够做简单应用。
针对hibernate关系映射进行了一个总结,包含xml配置形式和@注解配置形式,one-to-many,one-to-noe,many-to-one,many-to-many等单方向的配置和双方都配置的事例
Hibernate中根据数据库中各表,使用myEclipse的返向工程,自动生成hibernate.cfg.xml 配置文件 与person.hbm.xml映射文件和持久化类 (图文介绍)
Hibernate 映射文件详细解说。 1.学习Hibernate的配置文件(Hibernate.cfg.xml) 2.学习Hibernate的映射声明(*.hbm.xml)
hibernate学习总结 Hibernate Hello World 1.建立新的java项目 名为:hibernate_0100_HelloWorld 2. 学习建立User-hibernate 并加入相应的包 ...将映射文件加入到hibernate.cfg.xml 9.写测试程序 10.FAQ
在applicationContext.xml中配置映射文件 14 编写JSP,Action类,Service接口类,Service实现类,DAO接口类,DAO实现类 15 Jsp添加 15 Jsp修改 15 Jsp主界面 16 *Action,Action类 16 *Service,Service接口类 18 *...