- 浏览: 82342 次
- 性别:
- 来自: 上海
文章分类
最新评论
hihernate一对多关联映射(单向Classes----->Student)
一对多关联映射利用了多对一关联映射原理
多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一
一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多
也就是说一对多和多对一的映射策略是一样的,只是站的角度不同
在一一端维护关系的缺点:
* 如果将t_student表里的classesid字段设置为非空,则无法保存
* 因为不是在student这一端维护关系,所以student不知道是哪个班的,
所以需要发出多余的update语句来更新关系
-----------------------------------------------------------------
hihernate一对多关联映射(双向Classes<----->Student)
一对多双向关联映射:
* 在一一端的集合上使用<key>,在对方表中加入一个外键指向一一端
* 在多一端采用<many-to-one>
注意:<key>标签指定的外键字段必须和<many-to-one>指定的外键字段一致,否则引用字段的错误
如果在”一“一端维护一对多关联关系,hibernate会发出多余的udpate语句,所以我们一般在多
的一端来维护关联关系
关于inverse属性:
inverse主要用在一对多和多对多双向关联上,inverse可以被设置到集合标签<set>上,
默认inverse为false,所以我们可以从”一“一端和”多“一端维护关联关系,
如果设置成inverse为true,则我们只能从多一端来维护关联关系
注意:inverse属性,只影响数据的存储,也就是持久化 .通常配合cascade="all"使用。
inverse和cascade
* inverse是关联关系的控制方向
* cascade操作上的连锁反应
一对多关联映射利用了多对一关联映射原理
多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一
一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多
也就是说一对多和多对一的映射策略是一样的,只是站的角度不同
在一一端维护关系的缺点:
* 如果将t_student表里的classesid字段设置为非空,则无法保存
* 因为不是在student这一端维护关系,所以student不知道是哪个班的,
所以需要发出多余的update语句来更新关系
<class name="Classes" table="t_classes"> <id name="id"> <generator class="native"/> </id> <property name="name"/> <set name="students"> <key column="classesid"/> <one-to-many class="Student"/> </set> </class>
<class name="com.bjsxt.hibernate.Student" table="t_student"> <id name="id"> <generator class="native"/> </id> <property name="name"/> </class>
-----------------------------------------------------------------
hihernate一对多关联映射(双向Classes<----->Student)
一对多双向关联映射:
* 在一一端的集合上使用<key>,在对方表中加入一个外键指向一一端
* 在多一端采用<many-to-one>
注意:<key>标签指定的外键字段必须和<many-to-one>指定的外键字段一致,否则引用字段的错误
如果在”一“一端维护一对多关联关系,hibernate会发出多余的udpate语句,所以我们一般在多
的一端来维护关联关系
关于inverse属性:
inverse主要用在一对多和多对多双向关联上,inverse可以被设置到集合标签<set>上,
默认inverse为false,所以我们可以从”一“一端和”多“一端维护关联关系,
如果设置成inverse为true,则我们只能从多一端来维护关联关系
注意:inverse属性,只影响数据的存储,也就是持久化 .通常配合cascade="all"使用。
inverse和cascade
* inverse是关联关系的控制方向
* cascade操作上的连锁反应
<class name="Classes" table="t_classes"> <id name="id"> <generator class="native"/> </id> <property name="name"/> <set name="students" inverse="true" cascade="all"> <key column="classesid"/> <one-to-many class="Student"/> </set> </class>
<class name="com.bjsxt.hibernate.Student" table="t_student"> <id name="id"> <generator class="native"/> </id> <property name="name"/> <many-to-one name="classes" column="classesid"/> </class>
Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); Classes classes = new Classes(); classes.setName("尚学堂"); Student student1 = new Student(); student1.setName("10"); student1.setClasses(classes); Student student2 = new Student(); student2.setName("祖儿"); student2.setClasses(classes); Set students = new HashSet(); students.add(student1); students.add(student2); classes.setStudents(students); //可以正确保存 session.save(classes); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); }
发表评论
-
Fetch抓取策略
2008-12-21 15:30 10251 hibernate抓取策略(单端代理的批量抓取) 保持默 ... -
查询缓存
2008-12-21 13:27 2498查询缓存是针对普通属性结果集的缓存,对实体对象的结果集只缓存i ... -
二级缓存
2008-12-21 09:55 802二级缓存也称进程级的缓存或SessionFactory级的缓存 ... -
一级缓存
2008-12-20 21:18 825一级缓存很短和session的生命周期一致,一级缓存也叫ses ... -
HQL 原生SQL查询 外置命名查询 查询过滤器 DML风格的查询
2008-12-20 15:04 1269在hql中关键字不区分大小写,但是属性和类名区分大小写 1、简 ... -
冬夜读书示子律
2008-12-19 16:11 778古人学问无遗力,少壮功夫老始成。 纸上得来终觉浅,绝知此事要躬 ... -
悲观锁与乐观锁
2008-12-19 15:49 734悲观锁 悲观锁的实现,通常依赖于数据库机制,在整个过程中将数据 ... -
Set Map Arrary List 集合映射
2008-12-19 14:50 828<class name="com.bjsxt. ... -
composite 映射
2008-12-19 10:48 747通常将复合主键相关的属性,单独放到一个类中 * 此类必须实现序 ... -
Component 映射
2008-12-19 09:54 657在hibernate中,component是某个实体的逻辑组成 ... -
继承映射
2008-12-18 21:05 832继承映射分为三种: 1 单表继承:每颗类继承树使用一个表(ta ... -
LAZY策略
2008-12-18 14:26 719hibernate lazy策略可以使用在: * <cl ... -
Many-to-Many
2008-12-18 10:36 761hibernate多对多关联映射(单向User----> ... -
session --------- flush() 和 evict()
2008-12-17 14:00 2248session flush方法主要做了 ... -
数据库隔离级别
2008-12-17 13:57 793隔离级别 脏读 不可重复读 幻读 R ... -
One-to-one( 2 唯一外键关联)
2008-12-17 11:12 892hibernate一对一唯一外键关联映射(单向关联Person ... -
one-to-one(1主键关联)
2008-12-16 20:23 1744主键关联-----单向 <class name=&qu ... -
many-to-one
2008-12-16 20:15 731<class name="com.bjsx ... -
Hibernate3包问题org/slf4j/impl/StaticLoggerBinder
2008-12-15 13:55 4240Exception in thread "main& ...
相关推荐
NULL 博文链接:https://xiangtui.iteye.com/blog/680938
Hibernate-one-to-many
免费为大家服务 Hibernate one-to-many-annotation
如果在”一“一端维护一对多关联关系,hibernate会发出多余的udpate语句,所以我们一般在多的一端来维护关联关系。 加上inverse="true"这个属性,就可以强制在多的一端维护关系了。
NULL 博文链接:https://zhouxianglh.iteye.com/blog/569471
NHibernate One-to-Many一对多映射-xxlinux_com
hb-04-one-to-many-uni
关联映射的本质: 将关联关系映射到数据库,所谓的...<many-to-one>会在多的一端加入一个外键,指向一的一端,这个外键是由<many-to-one> 中的column属性定义的,如果忽略了这个属性那么默认的外键与实体的属性一致
NULL 博文链接:https://yinxiaoyong.iteye.com/blog/426752
many-to-one 配置详解 讲的很清楚 适合新手 值得下载
深入理解hibernate many-to-one(多对一)及 cascade(级联).
Hibernate应用例子many-to-many
One2Many JPA OrderBy 与 InMemory 排序示例 订购方式 用于按顺序创建实体的卷曲通过示例 curl -iX POST ...
该示例包含了基于XML和Annotation的Hibernate配置,涵盖了one-to-one、one-to-many、many-to-many映射关系的配置,并提供了独立的测试用例。适合用于学习和实践Java和Hibernate技术,以及开发基于MySQL的数据持久化...
上web tools课时老师发的关于hibernate的教程之一。大概内容看标题就知道了。需要注意的是文档全部是英文的。英文不好的童鞋就不要下了。
"Expert One-on-One: J2EE Design and Development" aims to demystify J2EE development. Using a practical focus, it shows how to use J2EE technologies to reduce, rather than increase, complexity. Rod ...
A method is presented for one-to-many information encryption transmission by using temporal ghost imaging and code division multiple access. In the encryption transmission process, code division ...
many-to-many similarity transfer matrix inferred offline from an extra auxiliary set and the online shopping set, the reliable cross-scenario one-to-many similarities between the query daily photo and...
Hibernate中many-to-one关系的编写_远航的水手
使用MySql示例的带有Hibernate的Spring Data JPA 该项目使用MySql Example描述了带有Spring Data JPA和Hibernate的Spring Boot示例。 描述 该项目显示了存储在MySql数据库中的用户列表。 使用以下端点,可以实现...