java hibernate 关联关系有什么作用

看本篇文章需要你对hibernate知识有一定的了解。

我们在学每个新知识之前,都希望了解这个知识有什么用?在实际开发中有什么优势?是否便于理解和便于学习?等等问题。当了解这个知识点后,我们才用动力去学习这个新知识点。

关联关系有什么用?
hibernate 中数据是以实体(@Entity 注解修饰类)类呈现给我们的。当数据被封装到这个实体类后,我们就可以将这个实体类当作实体对象。怎么理解?
举个例子
从班级表中查出某个学生的信息并封装到一个实体类classInfo中,这时候实体类classInfo我们就可以将这个类看做是这个班级了。
那么,根据需求,我们衍生出了还有一个Student表 学生表
班级和学生之间的关联关系是一对多。
那么,如果有一天,我们需要删除这个班级。删除这个班级后,所有的学生也会随班级的消失而消失。 这时候关联关系的作用就提现出来了

Session session = sessionFactor.openSession();
Transcation trans = session.beginTranscation();
session.delete(classInfo);          // 删除班级
trans.commit();

删除班级的时候 如果在实体中指定了与学生存在级联删除关系,那么在删除之前,会查询该班级下面所有的学生并删除这些学生。

级联删除关系

@OneToMany(targetEntity=Student.class,fetch=FetchType.LAZY,cascade=CascadeType.REMOVE)
@JoinColumn(name="classId")
public Set<Student> setStudent;

如果在班级实体类中存在这个关系,那么删除班级的时候也会删除该班级下的学生。

当然不只是删除,上面实例中cascade=CascadeType.REMOVE 指的是该实体与目标实体之间的级联关系是随着删除。

这是我在级联关系中用的最多的一个作用。当然还有其它的一系列级联关系,有兴趣的可以自己度妈学习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值