oracle 映射关系,Hibernate联系关系映射(单项多对一和一对多、双向一对多)

Hibernate关联映射(单项多对一和一对多、双向一对多)

最近总是接触着新的知识点来扩展自己的知识面;不停的让自己在原地接触天空的感觉真的很美好!!!革命没有成功,程序员的我们怎么能不努力呢......

一、用员工和部门来剖析关联映射的原理。

205854888.png

1)从这张截图可以看出我会站在员工的角度讲述:(单向关联)

关系:(多个员工对应一个部门)多对一的关系

意味:多个Emp对象只会引用一个Dept对象

方法:在Emp类中定义一个Dept类型属性,来引用所有关联的Dept对象

eg.

第一步建立两个实体类省略

第二步建立大配置

/p>

"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

oracle.jdbc.OracleDriver

jdbc:oracle:thin:@localhost:1521:orcl

sa

1

org.hibernate.dialect.Oracle10gDialect

true

true

update

true

org.hibernate.cache.EhCacheProvider

true

第三步创建小配置Emp

关键代码

解析::元素建立了Dept属性和Emp表的DEPTNo之间的映射关联

name:设定持久化类的属性名

column:name对应表的外键(Emp表的外键)

class:设定持久化类的属性类型

/p>

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

SEQ_NUM

第四步创建小配置Dept

/p>

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

SEQ_NUM

第五步就是测试类

@Testpublic voidAddObjectToDept(){

Emp emps=newEmp();

emps.setEmpName("西丽");

Session session=HibernateUtil.currentSession();

Transaction tx=session.beginTransaction();

session.save(emps);

System.out.println("ok");

tx.commit();

HibernateUtil.closeSession();

}

第六步运行结果

205854889.png

上述结果:现将数据查找一遍确保没有在进行添加

205854890.png

2)从截图可以看出我接下来就要站在部门Dept的角度剖析:(单项关联)

关系:(部门)一对多关联

意味:每一个Dept对象会引用一组Emp对象

方法:Dept类中应该定义一个集合类型属性,来引用所有关联的Emp对象。

与上述步骤唯一不同的就是Dept.hbm.xml的小配置

关键代码一对多

/p>

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

SEQ_NUM

二、双向关联

205854891.png

如上图所示:满足多对一和一对多的关联就是双向关联。

三、cascade属性

问题:删除Dept对象,并级联删除与Dept对象关联的Emp对象

解析:我们可以在、元素里面写cascade=“delete”属性就能完成并级联删除

cascade属性值

描述

none

当Session操纵当前对象,忽略其它的关联对象   cascade的默认值none

save-update

保存或者更新数据

delete

当通过Session的delete()方法删除当前对象时会级联删除所有的关联的对象

all

包含save—update和delete

初学者的我理解所致,既有不足,请多多指教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值