`
zds420
  • 浏览: 202706 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

关系映射

 
阅读更多

 

八:关系映射

1) 一对一关联

规律:凡是双向关联,必设mappedBy="true"

a)一对一(单向外键) 关联

annotation:@OneToOne @JoinColumn(name="")

xml:<many-to-one name="关联的模型类名称" column="制定关联主键的列名称" 

 

unique="true"></many-to-one> 说明是一对一关联(因为加了unique="true")

b)一对一(双向外键) 关联

在(Husband)主类中已经设置了@OneToOne的设置了,双向关联,则在双向关联的类(Wife)中也需要

 

设置@OneToOne

但是一对一双向外键关联需要增加(mappedBy="wife"),说明了一对一双向外键关联必须设置

 

mappedBy="wife".

annotation:@OneToOne(mappedBy)

 

c)一对一单向主键关联

   annotation:@PrimaryKeyJoinColumn(name="")

 

d)一对一双向主键关联

 

e)联合主键关联

 

 反向工程

 

 

组件映射

annotation:@Embeded 

xml:<composit>

主键映射的时候继承序列化接口

 

一对多,多对一关联

 

多对一单向关联

数据库表设计:在多方加外键

 

annotation:@ManyToOne

xml<many-to-one>

怎么规划你的将来?

 

数据库表的设计:在设计数据库表的时候一定切记不能存在冗余(特定问题特定分析)

a)遵守三范式:  

  1:要有主键列不可以再分,

  2:联合主键的依赖不能存在部分依赖

  3:不能存在传递依赖

 

一个人可以有多个理想,一个具体的梦想只可以属于一个人。

 

 

 

一对多单向关联

类:在一的一方存在多方的集合。

数据库表同上。

 

对象模型:在设计类的时候,使用hibernate则需要使用对象生成的机制。

数据库模型:在设计数据库的时候考虑不要出现冗余表

 annotation:@OneToMany

     @JoinColumn(name="group_Id")

  xml:<set>,<one-to-many>

 

一对多和多对一双向关联

使用双向必须使用mappedBy,如果不指定则出现两个相同外键字段

数据库设计在多的一方外键,在类中设计在一方:mappedBy="属性名称"

 

 

多对多单向关联

例如:老师和学生的关系,老师需要知道自己教了那些学生

数据库模型设计:在设计数据库表的时候加一张中间表。

对象模型设计:

annotation:@ManyToMany

           @JoinTable(name="t_s",

joinColumns={@JoinColumn(name="teacher_id")},

inverseJoinColumns={@JoinColumn(name="student_id")}

)

 

多对多双向关联

例如:老师和学生的关系,老石需要知道自己有那些学生。学生知道那些老师

 

 

 

 

关联关系的CRUD(重点)

创建:create

多对一:

在多方操作的设置:的一方设立annotation为@Cascade(CascadeType.ALL)为保存表之间的关联关联

 

键值。

cascade为关联为表插入值有关联数据对应值。

一对多:

在一方的操作的设置。

 

设定CASCADE可以设定在持久化编程时候对于关联对象的操作

cascade仅仅是帮我们省了编程的麻烦作用不大

  a)cascade的属性指明做什么操作的时候关联对象是绑在一起。

  b)merge=save_update

  c)refersh=A里面需要读取B改过之后的数据

规律:双向关系在程序中要设定双向关联

规律:双向mayppedBy

 

cascade管增删改,fetch管理读

 

 

更新:update

cascade=CascadeType.ALL

 

删除:delete

删除和更新的同时先查询下。

设置Cascade=CascadeType.REMOVE

如果要消除关联关系先设定关联关系为NULL,在删除对应记录,如果不删除记录,该记录就变成垃圾

 

数据。

 

O/R Mapping 编程模型

 1)映射模型

   JPA annotation(核心)

   hibernate annotation extension

   hibernate xml

   jpa xml

 

  2)编程接口

    JPA (核心)

    hibernate

  3)数据查询语言

    HQL

    EJBQL(JPQL)

 

作业:树状结构的设计(至关重要)

  在同一个类中使用OneToMany和ManyToOne

 

 

关联关系总结:

 1)什么关系类型,设定什么关系表,使用什么关系映射。

 2)CRUD,动手实战。

 

集合映射

  1)Set

  2)List

     list 存储多的一方,应该怎么存储数据。

     list可以排序,可以使用@orderBy排序

  3)Map

    @MapKey(name="主键字段名称")

 


分享到:
评论

相关推荐

    oracle 数据库关系映射

    ### Oracle 数据库关系映射详解 #### 关系映射概览 关系映射是指在数据库设计过程中,将实体之间的逻辑关系转化为物理数据模型的过程。这一过程对于构建高效且易于维护的数据库至关重要。Oracle数据库作为业界领先...

    对象/关系映射

    对象/关系映射 —Hibernate 对象/关系映射 —Hibernate 对象/关系映射 —Hibernate

    Hibernate对象关系映射

    Hibernate对象关系映射一对多 很基础等文档

    Mybatis关系映射

    Mybatis 是一款流行的轻量级持久层框架,它与Spring MVC 集成后能方便地处理数据库操作,包括各种复杂的数据关系映射。在Java Web开发中,数据关系映射是必不可少的一部分,它帮助我们将数据库中的表结构映射到对象...

    mybatis学习总结:对象关系映射的xml配置实现

    在IT行业中,MyBatis是一个广泛使用的持久层框架,它允许开发者将对象关系映射(Object-Relational Mapping,ORM)以XML配置文件的方式进行定义,从而极大地简化了数据库操作。这篇“mybatis学习总结:对象关系映射...

    JPA一对一,一对多,多对多关系映射

    在JPA中,关系映射是核心特性之一,它将数据库表之间的关系映射为Java类之间的关系,使数据操作更加直观和方便。本篇将深入探讨JPA中的一对一(OneToOne)、一对多(OneToMany)以及多对多(ManyToMany)关系映射。 ...

    Hibernate_关联关系映射配置详解

    Hibernate_关联关系映射配置详解,希望能帮助广大java爱好者

    Hibernate关系映射

    **标题:“Hibernate关系映射”** 在Java世界中,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者将数据库操作转化为面向对象的方式,极大地简化了数据持久化的复杂性。"多对一"关系映射是Hibernate...

    ibatis 的关系映射

    标题 "ibatis 的关系映射" 指的是在使用 iBATIS(一款优秀的Java持久层框架)时,如何处理数据库中的对象关系映射(ORM)问题。在Java应用程序中,iBATIS 提供了一种方便的方式来将数据库操作与业务逻辑解耦,使得...

    ORM关系映射

    ORM,全称Object-Relational Mapping,即对象关系映射,是编程领域中一种用于将关系数据库的数据模型映射到面向对象程序设计中的技术。它为开发者提供了一种抽象的方式来处理数据库操作,使得程序员可以使用面向对象...

    ORM对象关系映射

    对象关系映射(ORM) 对象关系映射(ORM)是一种概念性的、易于理解的模型化数据的方法,基于三个核心原则:简单、传达性、精确性。ORM 方法论提供了概念性的模型化数据的方法,基于数据模型创建正确标准化了的结构...

    数学方法论丛书-关系映射反演方法.pdf

    数学方法论丛书-关系映射反演方法.pdf

    对象-关系映射—Hibernate 培训 (中文)

    对象-关系映射—Hibernate 培训 (中文) 目录 一、持久化层-O/R Mapping 二、Hibernate入门 三、Hibernate映射申明(Mapping declaration) 四、持久化对象的状态和生命周期 五、Hibernate查询 六、Hibernate最佳...

    hibernate的关系映射

    **标题:“Hibernate的关系映射”** 在Java编程领域,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,将Java对象与数据库表之间的交互转化为简单的API调用。关系映射是Hibernate的核心特性之...

    ssm整合以及关系映射完整项目

    这个项目“ssm_integration_with_relationship_mapping”显然是为了帮助初学者掌握如何将这三个框架协同工作,同时涉及到数据库的关系映射配置。 **Spring框架**是Java领域的一个全功能容器,它管理对象的生命周期...

    hibernate关联关系映射

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作转换为面向对象的方式,从而简化了数据访问层的编程。"hibernate关联关系映射"是Hibernate的核心概念之一,它定义了如何...

    Hibernate教程20_关系映射案例三

    【标题】"Hibernate教程20_关系映射案例三"主要涵盖了在Hibernate框架中如何进行对象关系映射(ORM)的实践,特别是针对复杂关系的处理。在这个教程中,我们可能会学习到以下关键知识点: 1. **关系映射**:...

    ibatis 一对多关系映射

    在IT行业中,数据库关系映射是数据访问层的重要部分,特别是在使用ORM(对象关系映射)框架时。Ibatis,作为一个轻量级的Java ORM框架,提供了强大的功能来处理复杂的数据映射,其中包括一对多的关系映射。在这个...

Global site tag (gtag.js) - Google Analytics