hibernate一对多关系映射

一对多关系映射

是什么

在数据库中存在四种关联关系映射,分别是一对一(one-to-one)、一对多(one-to-many)、多对一(many-to-one)和多对多(many-to-many),其中日常开发中比较常用的是一对多和多对一的映射

作用

用法

前三条参考文章hibernate的映射关系多对多映射

  1. 在数据库中,可以通过添加主外键的关联,表现一对多的关系;而在Java代码里,可以通过在一方持有多方的集合实现,即在“一”的一端中使用元素表示持有“多”的一端的对象
  2. 学生表格外键和班级的主键gid关联,班级xml文件中的学生对应一个表,并且将表格中关联的外键存入key(从student的table中找出的外键key),一对多的类是一个studengt类。
  3. 其实因为在学生信息里也配置了多对一的关联关系,所以学生信息在插入数据库之后就已经关联了班级信息
  4. 接下来是关于缓存的内容:Hibernate的一级缓存又称为“Session缓存”、“会话级缓存”;在通过Session从数据库查询实体时会把实体在内存中存储起来,下一次查询同一实体时将不再从数据库中获取,而是从内存中获取,这就是缓存;一级缓存的生命周期和Session相同,Session销毁时,缓存也跟着销毁了;一级缓存的数据可适用范围只在当前的会话内,所以不同的Session多次查询同一个对象会执行多次的数据库查询;
  5. 一级缓存:Query.iterate()其实是用到缓存了的,它首先将所有对象的id查询出来,然后根据id到缓存中将所有对象都查询出来,如果缓存中没有数据,则把对象从数据库中一条一条的查出来。
  6. 二级缓存又称为“全局缓存”、“应用级缓存”,它的数据可适用范围是当前应用的所有会话,这与一级缓存只适用于当前会话内不同。下面我们来看看EHCache的使用。
    使用EHCache分为下面几个步骤:1、引入对应的jar包;2、在hibernate.cfg.xml文件中添加相应的配置;3、添加ehcache.xml配置文件;4、在需要缓存的表对应的映射文件中添加标签。
  7. 在数据库中,要实现多对多映射,一种很常见的方法就是添加一个中间表来指定关联关系,即新增一张包含关联双方主键的关联表。而在Hibernate中可以通过在双方实体类中定义关联对象集合,并在双方的映射文件中配置和元素来实现多对多映射。

猜你喜欢

转载自blog.csdn.net/qq_42031483/article/details/89301634