hibernate单向关联与双向关联的区别(原)
hibernate 区别 关联 双向 单向
2023-09-14 08:58:31 时间
今天看着hibernate的关联关系,有点迷糊。这里通过多对一表述一下双向与单向的区别。
多对一:
就是A表中的一个字段是B表的主键。多个A表中的数据可以对应一个B表中的数据,同理,一个B表中的数据可以同时对应多个A表中的数据。
单向关联与双向关联对数据表的要求其实是一致的。满足对应的关联要求即可,也就是A表中的一个字段是B表中的主键。
单向关联与双向关联的需求是不一样的。单向关联,只需要可以通过主表找到控表即可。这个很简单,通过简单的sql语句,select B from A where A.B=?即可。需要的配置也很简单,在A表的持久化类的映射文件中加入:
<class ......> <id....> ...... <many-to-one name="B" class="com.bean.B"> <column name="B"/> <!--这个B是A表中B表的主键对应的外键名--> </many-to-one> </class>
双向关联的需求是:能够通过A表找到B表,通过B表找到A表。怎么实现呢?
我们可以知道,单存的B表数据找到的是一批A表的数据,也就是A表数据对象的集合,当然,改变的不是数据库中的表,而是持久化类。B表的持久化类中加入一个A表的Set集合,将查询到的与B有关的数据放入该集合中,之后就可以通过其他的条件得到我们想要的对应A的信息了。
做法:
1、B持久化类中饭加入A的set集合以及对应get set方法
2、在B表的映射文件中加入Set信息以及一对多信息:
<set name="As" inverse="true">
<key column="B.id"/>
<on-to-many class="com.bean.A"/>
</set>
之后就可以通过一系列的操作实现我们的需求了!
相关文章
- JavaWeb_(Hibernate框架)Hibernate中数据查询语句SQL基本用法
- Hibernate使用createSqlQuery进行模糊查询时找不到数据
- hibernate注解实体类(Dept.java)
- hibernate注解实体类(Emp.java)
- Hibernate中使用Criteria查询及注解——(hibernate.cfg.xml)
- Hibernate基本概念 (4)
- hibernate之saveorupdate()、save()、update()都有什么区别
- Hibernate学习之hibernate.cfg.xml
- Hibernate -- 注解(Annotation)关系映射
- hibernate的update、merge和saveOrUpdate的区别(转)
- org.hibernate.AnnotationException: No identifier specified for entity: cn.itcast.domain.Counter
- Hibernate tools介绍、安装、使用
- jdbc-jdbcTemplate-hibernate-jpa-springDataJpa系列(一)
- Hibernate update 和 merge 、saveOrUpdate的区别
- hibernate的flush()、refresh()、clear()针对一级缓存的操作的区别
- jdbc,mybatis,hibernate各自优缺点及区别
- Hibernate的配置详解
- 深入了解Mybaits框架的优缺点以及适用场合,与Hibernate的区别详细介绍
- hibernate和jdbc的渊源
- SpringMVC+Spring+Hibernate的小样例