`
lp895876294
  • 浏览: 280073 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Spring JPA实体对象关联关系

    博客分类:
  • JAVA
 
阅读更多

       在关系数据库中对象之间的关系分为一对一(OneToOne)、多对一(ManyToOne)、一对多(OneToMany)和多对多(ManyToMany),并且被关联对象和关联对象之间的关系映射也存在单向和双向两种。

       在数据库设计时,一般将对象属性限制设置为nullable,即不限制表中哪些字段内容必须填写,因此就需要在开发时通过代码设置关联关系和字段限制。在Spring JPA中可以通过使用@OneToOne等关系、@JoinColumn定义对象之间的关系。但是数据的完成性维护并不能只通过关系映射就能够完成,关系映射是数据库关联关系的一个辅助,需要根据具体的情况采用不同的设置。

       例如:系统中存在公告和公告通知两个对象。在公告编制过程中可以对公告信息进行N次修改,只有最终修改完成并发布公告时才会生成公告通知信息。在以上对象关系中,公告和公告通知是一对多的关系,但是公告通知并不完全依赖于公告存在。

       公告对象的级联关系只有级联删除,只有在删除公告时才将与之相关的公告通知删除。在公告对象中对公告通知获取的策略为LAZY,即只有需要时才获取。

       公告通知对象的不设置级联关系,只有更新公告通知记录的功能或接口。在公告通知中对其公告对象获取的策略为EAGER,即在获取公告通知时获取公告。

 

对象关系主要属性包括:mappedBy(被关联对象名称,由@Entity标签指定)、cascade(级联方式)、fetch(关联对象获取策略)、optional(是否必须存在关联对象)。

 

注:JPA标签要么都放到对象属性上,要么都放到get方法上,如果混了在执行时就可能不识别标签标注的属性或对象。

 

 

分享到:
评论

相关推荐

    SpringDataJPA实例

    《你真的了解Jpa吗?》案例代码,内有SpringBootJPA的入门例子,包括增删改查一级实体关联关系处理。

    Spring Data Jpa – 获得实体类部分字段(单表或多表)

    一、单表查询的一个字段、一条数据 @Query(value = select username from user,nativeQuery = true) // 注意返回值用String类型接收,也可以使用Object String findOneUserName(); 二、单表查询的一个字段、多条...

    rsql-jpa-specification:Java库将RSQL转换为Spring Data JPA规范和QueryDSL谓词

    将RSQL查询转换为org.springframework.data.jpa.domain.Specification或com.querydsl.core.types.Predicate和support实体关联查询。 Maven仓库 将RSQL的rsql-jpa-spring-boot-starter添加到Spring JPA转换 Maven对r...

    spring-jpa-hibernate:使用Spring Data JPA和Hibernate作为JPA提供者的示例应用程序

    概述 示例应用程序演示了如何将Hibernate用作Spring Data JPA的JPA提供程序... 使用外键列的两个实体类之间的@OneToOne关联 关于abstract类的JPA count查询 在abstract类上执行count查询 自定义JPA功能 扩展Spring D

    快速学习-Spring Data JPA 之 ORM概述

    只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射 简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作...

    在Spring JPA中汇总来自多个表的数据的正确方法

    我有一个问答部分,其中每个问题和答案都有与之关联的用户个人资料卡。 其中显示用户名,积分等。组成此用户个人资料卡的数据分布在多个表中。 我正在从每个表中获取一两列。 现在我不确定...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    该案例采用目前最流行、最规范的java ee架构,整个应用分为jpa实体层、eao层、业务逻辑层、mvc层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了ide无关的、基于ant管理的项目源码...

    postgres-json-jpa:关于如何通用处理一个表中存储的多个实体的概念证明

    Postgres JSONB字段的spring-data-jpa用法这个简单的项目可用作在JSONB字段中通用存储数据的PoC。 在将特定于职业的信息存储在联接表中的情况下,借助Postgres中的JSONB字段,我们可以将所有信息存储在一个表中,而...

    Spring面试题

    ☆ Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 ☆ Spring Web 模块:...

    specification-arg-resolver:使用Spring MVC和Spring Data JPA过滤数据的替代API

    使用Spring MVC和Spring Data JPA过滤数据的替代API。 可以在我的博客中找到该组件的完整介绍和原始原理: : 。 在此文件中,您可以找到所有当前功能的摘要以及一些API示例。 您还可以查看使用此库的可运行的...

    treinaweb-spring-data-jpa:TreinaWeb的“ Spring-Spring Data JPA”课程中开发的项目的资源库

    提交清单班级视频犯罪关联第03课视频03:创建我们的第一个实体03:03-创建客户实体第03课视频04:存储库标准03:04-创建客户端实体存储库第03课视频05:客户实体的CRUD方法-第1部分03:05-创建了注册和展示客户的操作第...

    bookManager:用于Spring Boot的Book Manager一对多关系项目

    一对多双向关系映射带有Spring Boot的Java Web Services和RESTful API 本教程将引导您完成使用Spring Boot,Spring Data JPA,Lombok,H2和Swagger映射JPA / Hibernate一对多双向关系的步骤。 下表关系图说明了此...

    spring-activiti-webapp:Spring整合Activiti的简单例子

    第一次启动服务器会自动创建Activiti所需的表,也会创建该项目中的请假实体表(leave)JPA引擎会自动创建 执行src/main/resources/sql/data.sql脚本,初始化activiti所需的数据(用户、组、及用户和组之间的关联信息)

    spring-data-rest:弹簧数据休息

    这需要您的 JPA 存储库并使用 HTTP 将它们作为前端,从而允许您对实体进行完整的 CRUD 功能,包括管理关联。 安装 安装说明在文档中: 执照 Spring Data REST 是。 为 Spring Data Rest 做贡献## 以下是您参与社区...

    Java EE常用框架.xmind

    4,optional属性表示关联的该实体是否能够存在null值,默认为ture,如果设置为false,则该实体不能为null, 5, mapperBy属性:指关系被维护端 1,@JoinColumn注释是保存表与表之间关系的字段 2,如果不设置...

    code-generator.jar

    2.支持生成springdata jpa entity和dao 3.支持生成普通java实体类 2.可执行jar 文件 运行方式可以双击运行(可能需要关联配置),也可以使用命令启动 java -jar xxx.jar;第二种方式可以查询更多错误信息 。

Global site tag (gtag.js) - Google Analytics