一对一: <hibernate-mapping>

<class name="cn.jnit.bean.User" table="T_user">

<cache usage="read-write"/> --二级缓存

<id name="id">

<generator class="sequence">

</generator>

</id>

<property name="pwd"></property>

<property name="name"></property>

<one-to-one name="ud" class="cn.jnit.bean.UserDetail" property-ref="user" cascade="all" ></one-to-one>

</class>

</hibernate-mapping>

<hibernate-mapping>

<class name="cn.jnit.bean.UserDetail" table="t_ud">

<cache usage="read-write"/>

<id name="id">

<generator class="foreign">

<param name="property">user</param>

</generator>

</id>

<property name="address"></property>

<property name="phone"></property>

<one-to-one name="user" class="cn.jnit.bean.User" cascade="all"></one-to-one>

</class>

</hibernate-mapping>

*******************************************************************

一对多和多对一:

一对多

<hibernate-mapping>

<class name="cn.jbit.bean.Dept" table="DEPT">

<cache usage="read-write" />

<id name="deptno">    <generator class="sequence"></generator>   </id>

<property name="dname"></property>

<property name="loc"></property>

<set name="emps" cascade="save-update" inverse="true" order-by="empno desc"    lazy="false">

<cache usage="read-only" />

<key column="deptno"></key>

<one-to-many class="cn.jbit.bean.Emp" />

</set>

</class>

</hibernate-mapping>

多对一:

<hibernate-mapping>

<class name="cn.jbit.bean.Emp" table="Emp" lazy="false">   <cache usage="read-only" />

<id name="empno">    <generator class="sequence"></generator>   </id>

<property name="ename"></property>

<property name="job"></property>

<property name="mgr"></property>

<property name="hiredate"></property>

<property name="sal"></property>

<property name="comm"></property>

<many-to-one name="dept" column="deptno" class="cn.jbit.bean.Dept"    cascade="save-update">

</many-to-one>

</class>

</hibernate-mapping>

*******************************************************************************

多对多:

<hibernate-mapping>

<class name="cn.jbit.bean.Empl" table="T_Empl">

<id name="id">           <generator class="sequence"></generator>         </id>

<property name="pname"></property>

<set name="projects" table="Project_Empl" cascade="save-update">

<key column="eid"></key>

<many-to-many class="cn.jbit.bean.Project" column="pid"></many-to-many>

</set>

</class>

</hibernate-mapping>

<hibernate-mapping>

<class name="cn.jbit.bean.Project" table="T_PROJECT">

<id name="id">      <generator class="sequence"></generator>     </id>

<property name="pname"></property>

<property name="pflag" type="java.lang.Boolean" ></property>

<set name="empls" table="Project_Empl" cascade="save-update">

<key column="pid"></key>

<many-to-many class="cn.jbit.bean.Empl" column="eid"></many-to-many>

</set>

</class>

</hibernate-mapping>

两个一对多: 职员表和奖励表通过第三张表:职员奖励表关联,三个实体类

public class Emp {  private Integer id;  private String name;     private Set<EmpPri> empPris=new HashSet<EmpPri>(); }

public class Prize {  private Integer id;  private String type;  private String comment;  private Set<EmpPri> empPris = new HashSet<EmpPri>(); }

public class EmpPri {  private Integer id;  private String year;  private Emp emp;  private Prize pri; }

Emp.hbm.xml:

<hibernate-mapping>

<class name="cn.jnti.bean.Emp" table="Emp">

<id name="id">       <generator class="sequence"></generator>     </id>

<property name="name"></property>

<set name="empPris" cascade="save-update">

<key column="eid"></key>

<one-to-many class="cn.jnti.bean.EmpPri"/>

</set>

</class>

</hibernate-mapping>

Prize.hbm.xml:

<hibernate-mapping>

<class name="cn.jnti.bean.Prize" table="Prize">

<id name="id">       <generator class="sequence"></generator>     </id>

<property name="type"></property>

<property name="comment" column="P_comment"></property>

<set name="empPris" cascade="save-update">

<key column="pid"></key>

<one-to-many class="cn.jnti.bean.EmpPri"/>

</set>

</class>

</hibernate-mapping>

EmpPri.hbm.xml:

<hibernate-mapping>

<class name="cn.jnti.bean.EmpPri" table="Emp_Pri">

<id name="id">       <generator class="sequence"></generator>     </id>

<property name="year"></property>

<many-to-one name="emp" column="eid" class="cn.jnti.bean.Emp" cascade="save-update"></many-to-one>

<many-to-one name="pri" column="pid" class="cn.jnti.bean.Prize" cascade="save-update"></many-to-one>

</class>

</hibernate-mapping>

Hibernate的关系配置的更多相关文章

  1. Hibernate 关系配置

    表之间关系 1. 一对多 一个部门有多个员工,一个员工只能属于某一个部门 一个班级有多个学生,一个学生只能属于一个班级 2. 多对多 一个老师教多个学生,一个学生可以被多个老师教 一个学生可以先择多门 ...

  2. hibernate多对多关系配置

    一.创建用户,角色实体类. 一名用户可以有多个角色.一个角色可以对于多名用户. 用户实体类 public class User { private int uId; private String uN ...

  3. hibernate(3) —— 关系映射

    hibernate中关系映射指的是实体类与实体类间的关系.和数据库中表与表之间的关系类似,有一对一,多对一,一对多,多对多四种映射关系. 一:一对一映射 两个对象之间是一对一的关系,如人和身份证之间是 ...

  4. hibernate对象关系实现(一)一对多

    hibernate是对jdk一个封装工具,实现对象和数据库之间数据映射.使用时涉及到四个问题:a.对象之间的关系在类中的体现:b,对象关系对应的数据库中表之间体现:c.实现a,b在hibernate的 ...

  5. hibernate进阶--一对多映射配置

    hibernate作为一款优秀的ORM框架,广受大家喜爱,也被Java社区公认为持久层的首选.虽然jdbc为Java数据库操 作带来了诸多便利,但是并没有统一SQL语句的写法,而且具体操作数据库的代码 ...

  6. hibernate的基本配置

    1   Hibernate是一个非侵入式的ORMapping的框架. 2   Hibernate是一个能够将JAVA对象  通过   映射关系    映射到   关系型数据库的  这样一个框架 Hib ...

  7. hibernate框架入门配置

    1.新建一个项目(可以是java项目,也可以是webapp) 2.导入jar包,包括日志,mysql驱动,必备request包,jpa配置规范包 3.创建实体类 1.创建数据库,使用hibernate ...

  8. Hibernate注解关系映射

    Hibernate Annotation关系映射的几种类型映射用法及使用方法(说明:以前实例的实体是user和role,主键分别是userid和roleid)   1)一对一外键关联映射(单向) @O ...

  9. Hibernate表关系映射之多对多映射

    一.多对多的实现原理 在数据库中实现多对多的关系,必须使用连接表.也就是用一个独立的表来存入两个表的主键字段,通过遍历这张表来获取两表的关联关系. 而在我们的对象中,多对多是通过两者对象类中互相建立对 ...

随机推荐

  1. 将真彩色转换成增强色的方法(即RGB32位或RGB24位颜色转换成RGB16位颜色的函数)

    今天由于程序需要,需要将真彩色转换成增强色进行颜色匹配,上网搜了一下没搜到相应函数,于是研究了一下RGB16位的增强色,写了这个函数: public static int RGB16(int argb ...

  2. CSS :before和:after (转)

    前几天的晚上较全面的去看了下css的一些文档和资料,大部分的样式运用都没什么大问题了,只是有些许较陌生,但是也知道他们的存在和实现的是什么样式.今天主要想在这篇学习笔记中写的也不多,主要是针对:bef ...

  3. 低功耗蓝牙BLE [学习笔记]

    手机设备会区分 "connecting" and "pairing" ,前者可以自动连接,后者则需要请求.BLE不再有pairing的麻烦,能直接连上目标设备, ...

  4. php读取qqwry.dat ip地址定位文件的类

    <?php// +----------------------------------------------------------------------// |// +---------- ...

  5. 关于java字符串编译优化问题

    情景一:不好的字符串拼接习惯    起因是这样的:一个大牛在写了一篇关于java字符串优化问题的讲解,他提到:不要使用strObj+otherValue的方法将otherValue转换为字符串形式,因 ...

  6. HDFS中高可用性HA的讲解

    HDFS Using QJM HA使用的是分布式的日志管理方式 一:概述 1.背景 如果namenode出现问题,整个HDFS集群将不能使用. 是不是可以有两个namenode呢 一个为对外服务-&g ...

  7. zepto源码--qsa--学习笔记

    zepto内部选择器qsa方法的实现. 简述实现原理: 通过判断传入的参数类型: 如果是'#id',则使用getElementById(id)来获取元素,并且将结果包装成数组形式: 如果是'.clas ...

  8. Array原型链添加“遍历”方法

    <script> //1.在我们之前的项目里向原型链中集成方法时大多代码分析不严密,有时间我在这里会做详细分析; Array.prototype.each = function(fn) { ...

  9. Java实验五报告——TCP传输及加解密

    一.实验内容 1.运行教材上TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代码,一人加密后通过TCP发送: 注:加密使用AES或者D ...

  10. 升级openssl

    升级openssl 依赖openssl的软件,如果是静态编译openssl,那么需要重新编译软件,如果是利用openssl的so动态库,那么只需要替换一下so文件并重启软件即可 openssh也依赖o ...