Hibernate(1)关联映射之一对多
2015-01-19 18:20
106 查看
Hibernate关联映射之一对多,多对一
在昨天,我对于Hibernate还是很不熟悉,虽然之前华信有上过课,但我来的断断续续,只知道Hibernate是对数据库进行操作的。关于对Hibernate的理解我就不说了,百度输入一个Hibernate可以从其起源一直看到用法,那么就说一下,Hibernate关联映射之一对多,多对一关系的理解吧~举个例子,街道和区县的例子。一个区县可以对应很多个街道,这是一个一对多关系;多条街都是对应在一个区县的,这是一个多对一的关系。那么在代码的实现中,Hibernate关联映射关系怎么实现呢?
先申明一下,两个表:区县(District)、街道(Street)通过映射产生的几个文件:
District.Java District.hbn.xml Street.java Street.hbn.xml
一对多:
图一:District.java(源文件)(未修改)图二::District.java(已修改)
在这里,大家可以看到,在District.Java中只是添加了一个private Set<Street> streetSet = new HashSet<Street>();不懂的百度,这不是今天的重点。
当然有人会问,为什么要用Set集合,这是由于一个区县对应多条街道,当然要体现出多个,所以得用集合。List集合也是可以的啊,不过要注意的是不是HashSet了,要改成ArrayList<e>();还有就是Set和List的区别注意一下,另外,如果你使用List的话,后面的XML配置文件中也要改成list。
图三:这张是一方也就是例子中的区县方 District 的映射文件(未修改)District.hbn.xml
图四:这是对District的映射文件进行的配置(已修改)District.hbn.xml
大家可以看到图二比图一多了一个关联关系映射<one-to-many> ,在关系映射中,可以看到 name是我在Street.java中添加的一个对象集,class是该对象所在的类。特别注意的是Column,在这里先卖个关子,先看下文。
至此,一对多的关系映射配置完了,可以编写一个main函数来实现通过区县操作(增、删、查、改)所拥有的街道。
文字总结一下,一对多关系设置:(在一方设置)
1、在“一方”定义集合(Set、List)
2、在“一方”的配置文件定义Set集合或者LIst集合。
大家也许有看到我在配置文件中有casecade 和 inverse,你可以暂时先不管,不用添上他们,在我接下来的博文中将会告诉你casecade 和 inverse是干嘛用的,怎么用的。还有之前说的那个Column有什么特别的地方。
THE END。
相关文章推荐
- Hibernate3.x教程(二) Hibernate关联映射
- Hibernate之1-N关联映射
- (转)Hibernate关联映射——一对多(多对一)
- 【SSH进阶之路】Hibernate映射——一对一单向关联映射(五)
- Hibernate关联关系映射之一对一(主键关联)
- Hibernate 、多表关联映射-组件关联映射(component)
- hibernate多对一关联映射(cascade的使用)
- 【HIbernate框架学习】:Hibernate对象关系映射之双向一对多关联映射
- Hibernate多对多关联映射的HQL中的in条件查询问题
- 【Hibernate步步为营】--双向关联一对一映射详解
- 【Hibernate步步为营】--双向关联一对一映射详解(二)
- Hibernate映射——一对一双向关联映射(六)
- Hibernate之关于多对多双向关联映射
- hibernate之关于使用连接表实现一对多关联映射
- hibernate之关于关联映射的综合应用 推荐
- 【Hibernate步步为营】--(一对多映射)之双向关联
- 7.3 hibernate映射_双向一对多关联
- hibernate总结之关联映射(多对一和一对多)
- Hibernate从入门到精通(十)多对多单向关联映射
- Hibernate从入门到精通(十一)多对多双向关联映射