一对一主键关联单双向

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.wepull.pojo">
<class name="IdCard" table="t_idcard">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<!-- 双向配置如下 -->
<one-to-one name="p"></one-to-one>
</class>
</hibernate-mapping> <hibernate-mapping package="com.wepull.pojo">
<class name="Person" table="t_person">
<id name="id">
<generator class="foreign">
<param name="property">i</param>
</generator>
</id>
<property name="name"></property>
<!-- person找Idcard 单向 -->
<one-to-one name="i" constrained="true"></one-to-one>
</class>
</hibernate-mapping>

一对一外键关联单双向

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.wepull.pojo">
<class name="IdCard" table="t_idcard">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<!-- 双向配置 级联删除-->
<one-to-one name="p" property-ref="i" cascade="delete"></one-to-one>
</class>
</hibernate-mapping> <hibernate-mapping package="com.wepull.pojo">
<class name="Person" table="t_person">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<!-- person找Idcard 单向 -->
<many-to-one name="i" unique="true"></many-to-one>
</class>
</hibernate-mapping>

一对多/多对一

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.wepull.pojo">
<class name="Student" table="t_student">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<!-- 多对一配置如下 -->
<many-to-one name="c" class="Classes"></many-to-one>
</class>
</hibernate-mapping> <hibernate-mapping package="com.wepull.pojo">
<class name="Classes" table="t_classes">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<!-- 一对多 -->
<set name="s" inverse="true"><!-- 由学生管理 -->
<!-- column:多的一方持有一的一方的外键字段 -->
<key column="c"></key>
<one-to-many class="Student" />
</set>
</class>
</hibernate-mapping>

多对多单双向

<hibernate-mapping package="com.wepull.pojo">
<class name="Role" table="t_role">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<!-- 多对多 -->
<set name="u" table="t_user_role">
<key column="r"></key>
<many-to-many class="User" column="u"></many-to-many>
</set>
</class>
</hibernate-mapping> <hibernate-mapping package="com.wepull.pojo">
<class name="User" table="t_user">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<!-- 多对多配置如下 -->
<set name="r" table="t_user_role">
<key column="u"></key>
<many-to-many class="Role" column="r"></many-to-many>
</set> </class>
</hibernate-mapping>

Annotation注解(多对一)

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
/**
* @author fcs
* 不能自动删除表
* 多对一单向 多方持有一方的外键
* 2014-8-24
*/ @Entity
public class Student {
private int id;
private String name;
private Classes c; @ManyToOne(fetch=FetchType.LAZY)//延迟加载
@JoinColumn(name="cid")//修改表字段名 防止自动生成sid
public Classes getC() {
return c;
}
public void setC(Classes c) {
this.c = c;
}
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)//主键自增长
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

hibernate对象关系映射的配置的更多相关文章

  1. Hibernate 对象关系映射文件

    简介: POJO 类和关系型数据库之间的映射可以用一个 XML 文档来定义 通过 POJO 类的数据库映射文件,Hibernate 可以理解持久化类和数据表之间的对应关系,也可以理解持久化类属性与数据 ...

  2. hibernate对象关系映射( 一对一,一对多,多对一,多对多的单向,双向映射 ——)

    对象之间的关系: 关系映射之间的关系只的是对象之间的关系,并不指数据库表的关系(外键关系)这儿解决的问题是当对象之间的关系之一时,数据库表该如何映射,编程上如何对待. 一对一(主键关联,和单向的外键关 ...

  3. Hibernate -- 对象关系映射基础

  4. Hibernate(开放源代码的对象关系映射框架)

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自 ...

  5. hibernate(四)__由表逆向创建Domain对象和对象关系映射文件

    之前我们是手写Domain对象和对象关系映射文件->然后生成数据库中的Table. 现在我们反过来先在数据库中建好Table->然后用工具生成Domain对象和对象关系映射文件. 步骤: ...

  6. [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. Hibernate 中对象关系映射(ObjectRelationMapping)

    1.什么是对象关系映射? 解析:对象-关系映射(Object Relational Mapping,简称ORM,对象关系映射)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说, ...

  8. Hibernate基础学习(四)—对象-关系映射(上)

    一.映射对象标识符      Java语言按内存地址来识别或区分同一个类的不同对象,而关系数据库按主键值来识别或区分同一个表的不同记录.Hibernate使用对象标识符(OID)来建立内存中的对象和数 ...

  9. Hibernate学习笔记三:对象关系映射(一对一,一对多,多对一,多对多)

    如需转载,请说明出处:http://www.cnblogs.com/gudu1/p/6895610.html Hibernate通过关系映射来表示数据库中表与表之间的关系,关系映射可以通过两种方式:配 ...

随机推荐

  1. 数据结构:hash_map

    在C++11以上的开发环境中,请直接把map替换成unordered_map,不要使用hash_map 之前我们专门有一篇介绍哈希表,多维哈希表的博文,当时就是以map举例子,然后说了一句把map替换 ...

  2. [Luogu 1963] NOI2009 变换序列

    [Luogu 1963] NOI2009 变换序列 先%Dalao's Blog 什么?二分图匹配?这个确定可以建图? 「没有建不成图的图论题,只有你想不出的建模方法.」 建图相当玄学,不过理解大约也 ...

  3. 【HDU】6148 Valley Numer 数位DP

    [算法]数位DP [题意]定义V-number为从左到看单位数字未出现先递增后递减现象的数字,求0~N中满足条件的数字个数.T<=200,lenth(n)<=100 [题解]百度之星201 ...

  4. php中比较好用的函数

    PHP中一个好用的函数parse_url,特别方便用来做信息抓取的分析,举例子如下: $url = "http://www.electrictoolbox.com/php-extract-d ...

  5. CSS3禁止网页中文本被选中代码

    通常大家会有js来实现,另一个方案就是,将-webkit-user-select 和-moz-user-select 的值设为none,这针对于移动用户,可能会很有用.请谨慎使用这个属性:因为大部分用 ...

  6. Maven学习笔记(一)

    我们暂且可以把Maven理解成是一个项目构建与依赖管理的工具   为什么选用maven? 约定(惯例)优先原则,默认限定了项目目录结构 提供三方依赖管理(解决了依赖维护的问题) 提供了一致的项目构建管 ...

  7. js_setCookie,getCookie和checkcookie函数

    随便说说: cookie和sessionStrong,localStrong在web应用中都有一种存储的功能,也就是说可以把一些数据记录在浏览器.cookie和后两者的主要区别 是cookie是和后端 ...

  8. Android开发中的各种尺度单位

    px 像素(pixel),表示屏幕上一个物理像素点 不建议直接使用 px 绘制UI,因为受像素密度的影响,以 px 为单位绘制的UI在不同手机上显示的实际大小会不同 dp   (用于定义控件大小) 密 ...

  9. 【Matlab】使用Matlab运行Windows命令

    可以使用Matlab的一些命令来帮助程序运行.比如说 ! calc % 打开计算器 ! mspaint % 打开画图 dos calc % 打开计算器 比如一个程序要运行很长时间,而我们又不能一直守在 ...

  10. (八)hope

    vi svnserve.conf vi passwdvi authz svnserve -d -r /usr/svnkillall svnserveps -ef | grep svnserve svn ...