Hibernate实体映射技巧总结

初学者有没有感觉在写Hibernate实习映射的时候,被各种的many-to-one set one-to-many搞乱了头脑呢?

下面只需要三部,轻轻松松搞定。

1,写注释

格式为:(1?)属性,是本类与(2?)的(3?)关系。

<span style="font-size:14px;">例如:
<!-- users属性,本类与User的一对多 -->
<!-- parent属性,本类与Department的多对一 -->
<!-- roles属性,本类与Role的多对多 --></span>

2,拷模板

<span style="font-size:14px;">一对多模板
<set name="">
	<key column=""></key>
	<one-to-many class=""/>
</set>

多对一模板
<many-to-one name="" class="" column=""></many-to-one>

多对多模板
<set name="" table="">
	<key column=""></key>
	<many-to-many class="" column=""></many-to-many>
</set></span>

3,填空

<span style="font-size:14px;">name属性:将(1?)填入
class属性:将(2?)填入
特殊的column:
	当是:一对多 和 多对一 两对对应关系时
                多的一方维护关联关系,也就是说多的一方有一的一方的外键。
		将"多对一"的一方的name+Id填入到column中,在将column中的值填入到
		"一对多"的column中
		例如:
		 <!-- users属性,本类与User的一对多 -->
                <set name="users">
        	    <key column="departmentId"></key>
        	    <one-to-many class="User"/>
                </set>
		<!-- department属性,本类与Department的多对一 -->
		<many-to-one name="department" class="Department" column="departmentId"></many-to-one>

         当是:多对多 和 多对多 的对应关系时
		有一个中间表维护双方关系,也就是中间表中存放着双方表的外键。
		所以table属性的值,双方要一致。
		key中的column属性代表的是本方主键对应到中间表的外键名。
		many-to-many的column属性代表对方主键对应到中间表的外键名。
		例如:
		<!-- roles属性,本类与Role的多对多 -->
		<set name="roles" table="user_role">
			<key column="userId"></key>
			<many-to-many class="Role" column="roleId"></many-to-many>
		</set>
		<!-- users属性,本类与User的多对多 -->
		<set name="users" table="user_role">
			<key column="roleId"></key>
			<many-to-many class="User" column="userId"></many-to-many>
		</set></span>

Hibernate实体映射技巧总结,布布扣,bubuko.com

时间: 2024-10-10 00:47:53

Hibernate实体映射技巧总结的相关文章

Hibernate实体映射文件多对多等关系简单应用技巧

第一步,写注释: <!--xx属性,本类与Yy(类)的多对一 --> <!--xx属性,本类与Yy(类)的一对多 --> <!--xx属性,本类与Yy(类)的多对多 --> <!--xx属性,本类与Yy(类)的一对一 --> 第二部,拷模版 <!--xx属性,本类与Yy(类)的多对一 --> <many-to-one name="" class="" column="">&l

Hibernate实体映射

Hibernate实体映射步骤 1.写注释 ?格式为:?属性,表达的是本对象与?的?关系. 2,拷模板: 多对一 <many-to-one name="" class="" column=""/> 一对多(Set) <set name=""> <key column=""></key> <one-to-many class=""/&g

Hibernate实体映射模板

1,写注释 ?格式为:?属性,表达的是本对象与?的?关系. ?例:"department属性,本对象与Department的多对一" 2,拷模板: 多对一 <many-to-one name="" class="" column=""/> 一对多 (Set) <set name=""> <key column=""></key> <o

流程总结:Hibernate实体映射

本文内容来自:<传智播客-OA项目> 1,写注释格式为:?属性,表达的是本对象与?的?关系.例:“department属性,本对象与Department的多对一”2,拷模板: 3,填空:name属性:属性名(注释中的第1问号)class属性:关联的实体类型(注释中的第2个问号)column属性:<many-to-one column="..">:一般可以写成属性名加Id后缀,如属性为department,则column值写成departmentId.一对多中的&

Hibernate实体映射配置(XML)简单三步完美配置

我们在使用Hibernate框架的时候,非常纠结的地方就是实体和表之间的映射,今天借助汤老师的思路写了小教程,以后配置不用纠结了! 第一步:写注释 格式为:?属性,表达的是本对象与?的?关系. 例:“department属性,本对象与Department的多对一” 第二步:拷模板 第三步:填空: name属性:属性名(注释中的第1问号) class属性:关联的实体类型(注释中的第2个问号) column属性: <many-to-one column="..">:一般可以写成

系统管理模块_部门管理_设计(映射)本模块中的所有实体并总结设计实体的技巧_懒加载异常问题_树状结构

系统管理模块_部门管理_设计本模块中的所有实体并总结设计实体的技巧 设计实体流程 1,有几个实体? 一般是一组增删改查对应一个实体. 2,实体之间有什么关系? 一般是页面引用了其他的实体时,就表示与这个实体有关联关系. 3,每个实体中都有什么属性? 1,主键.推荐使用代理主键 2,关联关系属性.在类图中,关联关系是一条线,有两端,每一端对应一个表达此关联关系的属性.有几个端指向本类,本类中就有几个关联关系属性. 3,一般属性.分析所有有关的页面,找出表单中要填写的或是在显示页面中要显示的信息等.

hibernate的实体映射(一对一)

Hibernate的实体映射的主要任务就是实现数据库关系表与持久化类之间的映射,其关系如图: 双向映射一对一关联关系,通过唯一外键方式进行一对一关联映射,就是一个表的外键和另一个表的唯一主键对应形成一对一映射关系. 例如,以下例子,社团与社团负责人(社长),两者之间是一对一的关联关系: 持久化类association.java: public class Association implements java.io.Serializable{     private Integer id;   

Hibernate(三)结构-配置文件-实体映射及配置文件

一.体系结构 SessionFactory:属于单一数据库的编译过的映射文件的一个线程安全的,不可变的缓存快照.Session的工厂.有可能持有一个可选的数据缓存可以进程级别或者群级别保存可以在事务中重用数据. 会话,Session:单线程,生命期短促的对象,代表应用程序和持久化层之间的一次对话.封装了一个JDDBC连接,它也是Transaction的工厂,保存有必须持久化对象的缓存,用于遍历对象,或者通过标识符查找对象. 持久化对象(Persistent Object)及其集合(Collect

hibernate 实体关系映射笔记

@常用属性说明: @Entity:实体类 @Table:指定对应数据表 @Id:主键,使用可以为null值的类型,如果实体类没有保存到数据库是一个临时状态 @Column:配置普通属性,除了主键外,java基本类型的属性 @Base:普通属性的加载方式 @GeneratedValue:主键生成策略 @Temporal:日期类型(DATE,TIME还是TIMESTAMP),如果属性类型是java.util.Date(是以上3个类的父类)类型时才需要使用该@声明具体的日期类型 @Transient: