系统学习hibernate之四 hibernate多对一关联映射

一、关联映射的本质:

* 将关联关系映射到数据库,所谓的关联关系是对象模型在内存中的一个或多个引用

<many-to-one>会在多的一端加入一个外键,指向一的一端,这个外键是由<many-to-one>

中的column属性定义的,如果忽略了这个属性那么默认的外键与实体的属性一致

<many-to-one>标签的定义示例:

* <many-to-one name="group" column="groupid"/>

1、User的POJO类:

1public class User {
2
3  private int id;
4
5  private String name;
6
7  private Group group;
8//省略setter、getter方法
9}2、Group的POJO类:
1public class Group {
2
3  private int id;
4
5  private String name;
6//省略setter、getter方法
7}

3、User的映射文件User.hbm.xml:

1<?xml version="1.0"?>
2<!DOCTYPE hibernate-mapping PUBLIC
3  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4  "">
5<hibernate-mapping>
6  <class name="com.bjsxt.hibernate.User" table="t_user">
7    <id name="id">
8      <generator class="native"/>
9    </id>
10    <property name="name"/>
11     <many-to-one name="group" column="groupid"/>
12  </class>
13</hibernate-mapping>

4、Group的映射文件Group.hbm.xml:

1<?xml version="1.0"?>
2<!DOCTYPE hibernate-mapping PUBLIC
3  "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4  "">
5<hibernate-mapping>
6  <class name="com.bjsxt.hibernate.Group" table="t_group">
7    <id name="id">
8      <generator class="native"/>
9    </id>
10    <property name="name"/>
11  </class>
12</hibernate-mapping>

时间: 2024-07-28 13:02:14

系统学习hibernate之四 hibernate多对一关联映射的相关文章

【SSH系列】Hibernate映射 -- 多对多关联映射

     映射原理         在数据库学习阶段,我们知道,如果实体和实体之间的关系是多对多,那么我们就抽出来第三张表,第一张表和第二张表的主键作为第三表的联合主键,结合我们的hibernate,多对多关联,无论是单向关联还是双向关联都是通过第三张表,将两个表中的主键放到第三张表中做一个关联,用第三张表来解决可能造成的数据冗余问题.今天这篇博文小编来简单的介绍一下hibernate中的多对多关联映射.        在某些系统中,一个用户可以有多个角色,一个角色也可以有多个用户,so,她们之

一口一口吃掉Hibernate(六)——多对多关联映射

       今天来说说Hibernate中的多对多关联映射,多对多关联映射涉及到单向映射和双向映射2种.        首先举个多对多关联例子:用户User和角色Role,一个用户可以属于多个角色,一个角色可以有多个用户.这就是典型的多对多关联的例子.而单向关联映射则是只能由A端去操作B端,B端不能操作A端的数据.而双向关联映射则是A,B两端都可以操作另一端的数据.       先说单向关联映射,实体类如下: /** * 学生类 * @author Longxuan * */ public c

Hibernate多对多关联映射的HQL中的in条件查询问题

群里有朋友求解一个问题,高分求一条HQL多对多查询语句 . 问题描述见 http://topic.csdn.net/u/20090621/16/4eac6fe0-bf3e-422e-a697-f7584732f66e.html, 摘要如下: 一个学科表(Field),一个用户表(User),多对多关系. 学科表有两个字段,id和descripiton,用户表有众多字段,不罗列了 Field中有SET集合users User中有SET集合fields 现在要查掌握id like '520%'的女性

hibernate多对一关联映射问题

问题描述 /*一级栏目类*/@Entity@Table(name="tb_biglb")publicclassBiglbBeanimplementsSerializable{privateintbgid;privateStringbgname;privateSet<SmlbBean>smlbs=newHashSet<SmlbBean>();@OneToMany(mappedBy="bglb",fetch=FetchType.EAGER)pub

深入解析Java的Hibernate框架中的一对一关联映射_java

作为一个ORM框架,hibernate肯定也需要满足我们实现表与表之间进行关联的需要.hibernate在关联方法的实现很简单.下面我们先来看看一对一的做法:  不多说了,我们直接上代码:  两个实体类,TUser和TPassport: public class TUser implements Serializable{ private static final long serialVersionUID = 1L; private int id; private int age; priva

第九章 关系映射 多对多关联映射

表设计: 有一张中间表,中间表中有两张关联表的外键 如:student与teacher Student: package cn.framelife.mvc.entity; import java.util.Set; public class Student { private Integer id; private String name; private Set<Teacher> teachers; public Integer getId() { return id; } public v

第九章 关系映射 多对一关联映射

如:department与employee employee中有一个department_id的外键 Department: public class Department implements Serializable { private Integer id; private String name; public Department() { } public Integer getId() { return id; } public void setId(Integer id) { th

系统学习hibernate之六:一对一外键关联映射双向关联

hibernate一对一唯一外键关联映射(双向关联Person<---->IdCard) 一对一唯一外键关联双向,需要在另一端(idcard),添加<one-to-one>标签,指示hibernate如何加载 其关联对象,默认根据主键加载person,外键关联映射中,因为两个实体采用的是person的外键维护的关系, 所以不能指定主键加载person,而要根据person的外键加载,所以采用如下映射方式: <one-to-one name="person"

【SSH系列】Hibernate映射-- 多对一单向关联映射

      在hibernate中非常重要的就是映射,在前面的博文中,小编简单的介绍了基本映射,基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用.这个比较简单,但是基础知识还是需要好好掌握的哦,还有一些关联映射,比如user && group,她们之间的关系是一对多,我们知道一个用户只能属于一个组,但是一个组可以包好N多个用户,所以他们之间的关系就是多对一的关系,接着我们来看他们的对象模型以及关系模式.