hibernate
Murcielago楠
这个作者很懒,什么都没留下…
展开
-
Hibernate关系映射(一)一对一单向外键关联@OneToOne Annotation方式
首先构造一个场景,实体:国家(country),它具有以下属性,Id,名称,使用货币,首都。实体:首都(capital),它具有以下属性,Id,名称。一个国家有且仅有一个首都,一个首都只能属于一个国家,典型的一对一关系。由于Hibernate自动帮我们生成表了,所以表结构不直观,下面看PowerDesigner反向工程反向出来的表结构: 在country表中,有一个capital_capita原创 2015-02-26 16:57:08 · 5086 阅读 · 0 评论 -
Hibernate关系映射(二)一对一双向外键关联@OneToOne Annotation方式
在上一篇,也就是Hibernate关系映射(一)中已经介绍了一对一单向外键关联,本篇介绍一对一双向外键关联首先还是来构造一个实际应用的场景,比如实体类车辆(Car),它具有以下属性:Id,品牌(brand),车牌(lisencePlate);实体类车牌(LisencePlate),它具有以下属性:Id,号码(number),所属车辆(car)。那么车辆和车牌是一对一的关系,一辆车只能有一个车牌,一个原创 2015-02-27 09:57:13 · 4178 阅读 · 1 评论 -
Hibernate关系映射(三)多对一单向关联@ManyToOne Annotation方式
本篇介绍多对一的单向关联,应用场景是这样的,实体类汽车(Car),具有以下属性:Id,铭牌(name),车主(owner),实体类车主(Owner),具有以下属性:Id,姓名(name)。那么一辆车只能有一个车主,但是一个土豪车主可以拥有多辆汽车,这是一个多对一的关系。下面是表结构: t_car表中有一个owner_id字段作为外键指向t_owner表,参照的是t_owner表的id 重点内原创 2015-02-27 11:55:18 · 2122 阅读 · 0 评论 -
Hibernate关系映射(四)一对多单向关联@OneToMany Annotation方式
本篇介绍一对多单向关联,实例还是和Hibernate关系映射(三)多对一单向关联中的例子一样,一个车主(Owner)可以有多辆车,一辆车(Car)只能有一个车主,下面是表结构: 表结构和多对一的表结构是一样的,都是在多方(car方)有一个字段作为外键指向owner的Id。下面是实体类的代码:import java.util.HashSet;import java.util.Set;impor原创 2015-02-27 15:03:50 · 3820 阅读 · 0 评论 -
Hibernate关系映射(五)一对多、多对一双向关联@OneToMany @OneToMany Annotation方式
前两篇介绍了一对多和多对一的单向关联,而且前几篇发帖时间都比较紧凑,由于春节期间和收假这段时间都在帮公司的培训中心架构开发一个在线考试系统,所以就耽搁了,不好意思。那么言归正传,本篇介绍一对多,多对一的双向关联,既然是双向关联,那么一对多和多对一其实是一个意思。首先来构造一个场景,实际应用场景就用前两天开发的在线考试系统的一个部分,是这样的:实体(试卷),有如下属性:Id,名称(name),标准答案原创 2015-03-04 11:27:53 · 2353 阅读 · 0 评论 -
Hibernate关系映射(六)多对多单向关联@ManyToMany Annotation方式
本篇介绍多对多的单向关联,多对多的处理方式是,有一张中间表,中间表保存两个多方之间的关系。首先来看实际应用场景:在之前开发的系统中,应用了基于角色的控制访问,也就是RBAC模型,一个用户可能存在多种角色,一种角色也可能有多个用户,所以用户和角色之间是一个多对多的关系。实体:用户(User),具有如下属性:Id,名称(name),角色列表(roles);实体:角色(Role),具有如下属性:Id,名称原创 2015-03-09 09:32:17 · 4802 阅读 · 0 评论 -
Hibernate关系映射(七)多对多双向关联@ManyToMany Annotation方式
本篇介绍多对多的双向关联,也是Hibernate关系映射的结尾篇,后续篇章会介绍Hibernate的懒加载机制和级联相关操作。首先还是来模拟一个实际应用的场景,在之前开发过的RBAC模型中,有这样一个关系,用户组中包含多个用户,每一个用户可以属于多个用户组,那么这就是一个多对多的关系,而我又需要从当前用户组读取到包含哪些用户,又需要从当前用户获取他在哪些组中。那么就需要建立双向关联。 Entity原创 2015-03-10 10:16:33 · 1981 阅读 · 0 评论 -
Hibernate级联操作和加载机制(一) cascade and fetch
本篇介绍Hibernate的级联操作和加载机制首先来看级联,级联在Hibernate中用cascade这一属性表示,首先看什么是级联。比如在关系映射中,无论是一对一还是一对多还是其他:对象A和对象B是关联的,那么在对A进行CRUD操作的时候,比如将A持久化到数据库中时,也把B一起持久化进去,或者只是持久化A而不关联B,这种就称之为级联操作。下面来看一个具体的实例,映射关系就用一对多的双向关系,用之前原创 2015-03-12 14:27:47 · 1505 阅读 · 0 评论 -
Hibernate级联操作和加载机制(二) cascade and fetch
上一篇介绍了Hibernate持久化对象时候的级联操作,本篇介绍读取时候的级联操作。还是用上一篇的例子,一份问卷有多个问题,但是每个问题只能属于一份问卷。我们先看测试用例: @Test public void testReadFromQuestionnaire(){ Session session = sessionFactory.getCurrentSessio原创 2015-03-13 14:18:23 · 2022 阅读 · 0 评论