额,我觉得,你是学得有点头晕了吧?!,不过能理解哈,我那时候也是蛮晕的!
首先:一定要理解Hibernate的关联关系是用来做什么的,目的是要干什么?有什么好处...等等...
我先明确下,你给的<many-to-one>和<one-to-one>可以说是没有什么关系的,但也不是没有特别的实例(比如:船长可以是一艘船的,如果他技术好,也有可能被分配到多艘船上,这就存在着:一个船长对应一条船:one-to-one,多条船可以只有一个船长:many-to-one)但是,大部分这样的例子是用不到的;
任何对应关系都是有单向和双向的,如果,你分不清,就这样记住:
如果是一对一关系:
1、单向:一个船长只能管理一条船:在船长类里面配置船的类对象:(先把船类在船长类里面的关联键去掉)
private 船类 船类对象;
让后在船长类映射文件里面配置 <one-to-one name="船类对象" class="船的实体类" cascade="all"></one-to-one>(配置的时候要把船类和船长类有关联的键值那列,从映射文件去掉!
2、双向:船长和船类里面都分别配置对方的实体类对象,同理要把关联的键值去掉,分别在各子的映射文件中配置以上关系,(但请注意,一定以船长类配置船,船类配置船长)
接下来就是多对一了,(房屋类型和房屋)二者就是很明显的一对多关系
1、单向多对一:在房屋类里面写房屋类型的对象,同理把相关的键值去掉;
在映射文件中<many-to-one name="房屋类型对象" class="房屋类型类" column="房屋类型在房屋类里面相关的外键" cascade="save-update"> </many-to-one> (在配置的时候,同时需要再映射文件中删除关联的外键列)
2、双向的多对一,也就是(房屋类——房屋类型:→多对一;(房屋类型——房屋类→一对多)就为双向的了,配置原理如上;
额,打的不知道清不清楚,希望能帮到你!
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....