菜鸟学习Hibernate——一对多关系映射
来源:互联网 发布:sql创建存储过程 查询 编辑:程序博客网 时间:2024/05/29 19:22
下面就为大家讲解一下:Hibernate中的关系映射,最常见的关系映射之一就是一对多关系映射例如学生与班级的关系,一个班级对应多个学生。如图:
Hibernate中如何来映射这两个的关系呢?
1、创建实体类Classes和实体类Student
Classes.java
package com.bjpowernode.hibernate;import java.util.Set;public class Classes {private int id;private String name;private Set students;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 Set getStudents() {return students;}public void setStudents(Set students) {this.students = students;}}Student.java
package com.bjpowernode.hibernate;public class Student {private int id;private String name;private Classes classes;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 Classes getClasses() {return classes;}public void setClasses(Classes classes) {this.classes = classes;}}
2、创建映射文件Classes.hbm.xml和Student.hbm.xml
Classes.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.bjpowernode.hibernate.Classes" table="t_classes"><id name="id"><generator class="native"/></id><property name="name"/><set name="students" inverse="true"><!-- <key column="classesid" not-null="true"/> --> <key column="classesid"/><one-to-many class="com.bjpowernode.hibernate.Student"/></set></class></hibernate-mapping>Student.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.bjpowernode.hibernate.Student" table="t_student"><id name="id"><generator class="native"/></id><property name="name"/><many-to-one name="classes" column="classesid"/></class></hibernate-mapping>
3、效果图
PS:我上面举例的是一对多双向关联的例子。有双向关联当然就有单向关联。下面举个例子来说明他们的区别
如果Student添加了一条记录当中的classesid在Classes中没有这个id,双向关联的话则先添加学生这条记录然后再班级那里添加这个班级,然后再更新学生的classesid。单向关联的话先添加班级,然后再添加学生。
0 0
- 菜鸟学习Hibernate——一对多关系映射
- hibernate 映射关系—关系映射(一对多)
- 菜鸟学习Hibernate——多对多关系映射
- Hibernate学习(第五篇)——Hibernate一对多关系映射
- 精通Hibernate——映射一对多关联关系
- Hibernate 关系映射 —— 单向一对多
- Hibernate实体映射——单边的一对多关系
- Hibernate框架基础——一对多关联关系映射
- Hibernate(3)——一对多映射关系
- Hibernate 一对多关系映射
- hibernate一对多关系映射
- Hibernate一对多关系映射
- Hibernate映射一对多关系
- Hibernate一对多关系映射
- Hibernate关系映射一对多
- hibernate一对多关系映射
- 《精通Hibernate》学习(5)——映射一对多关联关系
- Hibernate学习笔记(四) — session的产生方式 与 一对多关系映射
- 安装numpy 环境:python3.4+ windows7 +64位系统
- Linux下的SVN使用
- 你要知道如何回答这12类问题?
- 【leefcode】Unique Binary Search Trees
- DELPHI安装、破解XE6,装控件
- 菜鸟学习Hibernate——一对多关系映射
- oracle数据库查询表字段
- 【android】日期格式
- VS2010 实现无边框加载网页
- 黑马程序员_原码 反码和补码
- Type mismatch: cannot convert from Object to String
- android:installLocation简析
- UVA 10161-Ant on a Chessboard 简单模拟
- 1. 总是从ID选择器开始继承 在jquery中最快的选择器是ID选择器. 因为它直接来自于Javascript的getElementById()方法. Traffic Light