【hibernate框架】关系映射之一对一单向外键关联(XML实现)

在XML里面如何单向关联:

学生证与学生卡是一对一的关系,在学生证那一方做关联

Student.java:

package cn.edu.hpu.model;

public class Student {
	private int id;
	private String name;

	private int age;

	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;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

StudentIdCard.java:

package cn.edu.hpu.model;

public class StuIDCard {
	private int id;
	private String num;
	private Student student;//与学生实体类单向关联

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNum() {
		return num;
	}
	public void setNum(String num) {
		this.num = num;
	}
	public Student getStudent() {
		return student;
	}
	public void setStudent(Student student) {
		this.student = student;
	}
}

StudentIdCard.hbm.xml:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="cn.edu.hpu.model.StuIDCard">
        <id name="id">
            <generator class="native"></generator>
        </id>

        <property name="num"/>
        <!-- 站在当前类的立场考虑,设外键关联的时候设置的 many-to-one-->
        <!-- many-to-one多个学生证对应一个学生 unique="true"唯一为true,必须保证id唯一,就变成了一对一-->
        <!--column定义哪个字段做为外键关联类字段-->
        <many-to-one name="student" column="id" unique="true"></many-to-one>

    </class>
</hibernate-mapping>

Student.hbm.xml:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="cn.edu.hpu.model">
    <class name="Student" table="student" dynamic-update="true">
	<id name="id" column="id">
		<generator class="native"></generator>
	</id>
        <property name="name"></property>
        <property name="age"></property>
    </class>
</hibernate-mapping>

转载请注明出处:http://blog.csdn.net/acmman

时间: 2024-08-07 02:37:34

【hibernate框架】关系映射之一对一单向外键关联(XML实现)的相关文章

【hibernate框架】关系映射之一对一单项外键关联(Annotation实现)

一对一单向外键关联(Annotation做法): 例子,假设一夫配一妻(Husband与Wife).两个实体类的例子: Husband.java: package cn.edu.hpu.one2one; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToOne; @Entity pu

Hibernate一对一单向外键关联(简单总结了5种方法)

比如一对夫妻,丈夫有id,name:妻子有id,name.增加一对一单向外键关联一般有以下几种方法: 1.在husband中增加一个外键,foreign key 2.在husband中增加字段wife_id,wife_id参照wife的id.以wife为主导,必须wife里有id才能参照 3.在wife中增加一个外键,foreign key 4.在wife中增加字段husband_id,husband_id参照husband的id.以hunsband为主导,必须hunsband里有id才能参照

【hibernate框架】一对一双向外键关联(XML实现)

以Student与StuIDCard一对一双向关联为例,说一下用XML实现两者的一对一双向关联. 学生与学生证之间的关联关系. Student.java: package cn.edu.hpu.model; public class Student { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id

【hibernate框架】一对一双向外键关联(Annotation实现)

一对一双向外键关联(Annotation方法): 一夫(Husband)一妻(Wife)的一对一双向外键关联 Husband和Wife实体类: package cn.edu.hpu.one2one; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import jav

Java的Hibernate框架中一对多的单向和双向关联映射_java

一.一对多单向关联映射 一对多关系的对象模型在日常生活中也经常看到,就拿学生和班级来说,一个班级里有多个学生,所以班级和学生的关系是一对多的关系,映射到对象模型中,如下图: 对象模型说明了这种一对多的关系是由一的一端来维护的,那么映射成关系模型就是一个班级字段下面会有多个学生,这样就形成了一对多的关系,通过班级能够查询获得学生信息,对应的关系模型如下图: 1.基本配置 有了对象模型接下来就让它们映射为对应的关系代码,在进行关系映射时需要在一的一端添加<one-to-many>标签,另外还需要在

hibernate5(13)注解映射[5]一对一共享主键关联

一对一共享主键 下面我们直接通过实例来讲解共享主键配置: 主键主控方:Article package com.zeng2.model; @Table(name = "t_article2") @Entity public class Article { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String title; @OneToOne(cascade = Casc

【hibernate框架】一对一单向主键关联(Annotation实现)

单项主键关联指的是:husband和wife之间有关联关联的.但是是用主键做关联的,说白了就是husband的id会参考wife的id(husband的id是1,n那么它所对应的wife的id也是1). Husband.java: package cn.edu.hpu.one2one; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; imp

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

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

hibernate5(12)注解映射[4]一对一外键关联

在实际博客网站中,文章内容的数据量非常多,它会影响我们检索文章其它数据的时间,如查询发布时间.标题.类别的等.这个时候,我们可以尝试将文章内容存在另一张表中,然后建立起文章--文章内容的一对一映射 一对一关联有两种方式,一种是外键关联,另一种是复合主键关联. 外键关联 下面我们先看一个一对一单向关联的实例 /*************关联关系维护方************/ @Table(name = "t_article") @Entity public class Article