hibernate之 many to one /one to many
2015-10-15 15:32
260 查看
一个classroom 对应多个学生.这个是one to many
多个学生对应一个classroom 这个是many to one
表classroom
表 student
classroom 的主键是student 的外键.
用hibernate 自动生成如下的类和hbm.xml 映射文件
classroom.java
student.java
classroom.hbm.xml
student.hbm.xml
多个学生对应一个classroom 这个是many to one
表classroom
| classroom | CREATE TABLE `classroom` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
表 student
| student | CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `classroom` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `FK_ID` (`classroom`), CONSTRAINT `FK_ID` FOREIGN KEY (`classroom`) REFERENCES `classroom` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
classroom 的主键是student 的外键.
用hibernate 自动生成如下的类和hbm.xml 映射文件
classroom.java
package com.skyline.test; // Generated 2015-10-15 15:15:05 by Hibernate Tools 4.3.1 import java.util.HashSet; import java.util.Set; /** * Classroom generated by hbm2java */ public class Classroom implements java.io.Serializable { private Integer id; private String name; private Set students = new HashSet(0); //表中没有 ......getter/setter }
student.java
package com.skyline.sms.caster.test; // Generated 2015-10-15 15:15:05 by Hibernate Tools 4.3.1 /** * Student generated by hbm2java */ public class Student implements java.io.Serializable { private Integer id; private Classroom classroom; private String name; ............getter/setter }
classroom.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"> <!-- Generated 2015-10-15 15:15:06 by Hibernate Tools 4.3.1 --> <hibernate-mapping> <class name="Classroom" table="classroom" catalog="smsdb" optimistic-lock="version"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <property name="name" type="string"> <column name="name" length="20" /> </property> <set name="students" table="student" inverse="true" lazy="true" fetch="select"> <key> <!--key 表示在student 表有如下外键--> <column name="classroom" /> </key> <one-to-many class="Student" /> </set> </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"> <!-- Generated 2015-10-15 15:15:06 by Hibernate Tools 4.3.1 --> <hibernate-mapping> <class name="Student" table="student" catalog="smsdb" optimistic-lock="version"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <property name="name" type="string"> <column name="name" length="20" /> </property> <many-to-one name="classroom" class="Classroom" fetch="select"> <column name="classroom" /> </many-to-one> </class> </hibernate-mapping>
相关文章推荐
- sqlcipher移植
- 4G手机市场规模达4.5亿 换机潮加剧国产厂商洗牌
- Drupal 文件系统相关功能模块详解
- Android自定义ViewPager的过渡动画
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
- 动态地分配内存
- Linux内核工程导论——虚拟化与云
- 最强最方便的傻瓜式的vim配置
- The tools that check memory leak of python program
- MySql:多表查询
- 云栖大会马云演讲笔记
- Android性能检测--traceview工具各个参数的意思
- 谁还记得这些国产机?两年前还热火朝天
- 【软考】UML—类与类之间的关系
- jsp和struts 、action的交互
- SICP习题1.8
- impdp报错ORA-31631、ORA-39122
- python sort / sorted 和 argsort()
- VC++2005、VC2008中Release版本设置为可调试的设置方法
- opengl shader