注:此为个人学习笔记,内容可能有些混乱,仅供参考。
1、关系
关系可以是双向或单向的。双向关系同时具有持有端(
owning side
)和反向端(
inverse
side
)。单向关系只有一个持有端。
2、关系持有者
MappedBy
元素指出实体中作为关系的主控端的属性/字段。
在非持有端注明
,类似于表明交出控制权。
一对多
/
多对一双向关系中的
“多”端必须是持有端
,(在一对多时,外键建在多的一端)因此不能在
ManyToOne
注解中使用
mappedBy
元素。
对于一对一双向关系,包含对应的外键(
foreign key
)的那一端是持有端。
对于多对多双向关系,任一端都可以作为持有端。
3、级联
关系模型注解限制对
cascade=REMOVE
的使用。
cascade=REMOVE
只应该用
OneToOne
或
OneToMany
关系上,对其它类型的关系应用
cascade=REMOVE
是不可移植的。
4、实体实例的生命周期
一个实体实例的状态可以被分为
new, managed, detached
或
removed
。
•
一个新创建的实体实例没有持久化标识,并且还没有与一个持久化上下文相关联。
•
一个受管的实体实例有一个正与持久化上下文相关联的持久化标识。
•
一个脱管的实体实例有持久化标识,但这个标识没有(或已经不再)与一个持久化上下文相关联。
•
被删除的实体实例具有持久化标识,并且与持久化上下文相关联,但是已经被计划从数据库中删除。
5、持久化Entity实例
persist 保存
remove 删除
merge 将脱管实体的状态传递到由EntityManager管理的持久实体。
contains 确认一个实体的实例是不是当前持久化上下文中的受管对象。
6、级联加载
同cascade注解一样,fetch只应该用在OneToOne、OneToMany关系上,默认为lazy。
7、事件监听
在实体类上加监听方法,有以下各种注解申明方法执行的时间
@PrePersist @PostPersist
@PreRemove @PostRemove
@PreUpdate @PostUpdate
8、一些注解
@OrderBy 用于指定一个集合值的关联在被获取时,其中元素的排序。
@Temporal 在java.util.Date和java.util.Calendar类型的持久字段/属性上必须指定Temporal注解,它也只能用于这些类型。
9、注意
所有未用
Transient
标注的属性都是持久化的。属性访问方法必须是
public
或
protected
。当使用基于属性的访问时,实体的对象
/
关系映射注解标注在
getter
方法上。
分享到:
相关推荐
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的对象-关系映射(ORM)。它提供了一种方式,让开发者可以用面向对象的编程模型来操作数据库,而无需直接编写SQL语句。JPA允许你在...
**Spring Data JPA** 是一个基于 **Java** 的开源框架,它是 **Spring Framework** 的一个模块,主要用于简化 **Java Persistence API (JPA)** 的使用。JPA 是 Java 平台上的一个标准,用于管理和持久化应用程序的...
Spring框架的核心特性包括依赖注入(DI)和面向切面编程(AOP),并且它还提供了对数据库操作的支持,这主要通过Spring Data JPA和Java Persistence API(JPA)实现。 Spring注解是Spring框架中的一大特色,它极大...
### JPA概述与核心知识点详解 #### 一、JPA概览 JPA,全称Java Persistence API,作为Java EE 5.0平台标准的ORM(Object-Relational Mapping)规范,旨在解决对象持久化问题,使开发人员能更轻松地在Java应用程序...
JPA(Java Persistence API)是Java平台上的一个标准,用于管理关系数据库中的数据。Spring Data JPA 是基于 JPA 的一个扩展,它简化了数据库操作,使得开发者无需编写大量SQL语句,就能实现数据的增删改查。在这个...
**JPA(Java Persistence API)**是Java平台上的一个标准,用于管理关系数据库中的数据,它简化了在Java应用程序中存储、检索和管理对象的工作。JPA是Java EE和Java SE环境中的一种ORM(Object-Relational Mapping)...
**Java 持久化 API(JPA)详解(一)** Java 持久化 API(Java Persistence API),简称 JPA,是 Java 平台上的一个标准,用于管理关系数据库中的数据。JPA 提供了一种面向对象的方式来操作数据库,使得开发人员...
Spring Data JPA是Spring生态中的一个强大ORM框架,它极大地提高了Java开发者在处理数据库操作时的效率。Spring Data JPA的主要优点在于其高度的开发效率、成熟的语法结构以及与Spring框架的紧密集成。 1. **开发...
Spring Data JPA是Spring对JPA的扩展,提供了更丰富的功能,包括自动Repository生成、查询方法等。 在Spring Boot项目中集成JPA,首先需要在`pom.xml`或`build.gradle`中添加相应的依赖。接下来,创建实体类...
在Spring Boot应用中,Druid和JPA是两种常见的数据库操作工具。Druid是一个功能强大的数据库连接池,而JPA(Java Persistence API)是Java平台上的一个标准,用于对象关系映射(ORM)。本篇文章将深入探讨如何在...
Spring JPA,全称为Spring Data JPA,是Spring框架的一部分,专门用于简化Java持久层编程,尤其是与关系型数据库的交互。它建立在Java Persistence API(JPA)之上,提供了更高级别的抽象,使得开发者可以更加专注于...
**JPA注解@Access详解** Java Persistence API (JPA) 是Java中用于对象关系映射(ORM)的标准框架,它允许开发人员将Java类与数据库表进行映射,从而简化数据操作。在JPA中,`@Access`注解是用于指定实体属性访问...
"JPA事务管理" JPA(Java Persistence API)是一种Java持久化规范,它提供了一个抽象层来访问关系数据库。JPA的事务管理是指对一系列操作的管理,包括创建、读取、更新和删除(CRUD)等操作。事务管理的目的是确保...
SpringBoot整合JPA实现自动创建数据库表自动建表,JPA逆向生成数据库表 运行环境 jdk8+tomcat9+mysql+IntelliJ IDEA+maven 项目技术(必填) springboot+jpa 数据库文件(可选) 新建一个test的数据库即可,表在...
JPA用于整合现有的ORM技术,可以简化现有Java EE和Java SE应用的对象持久化的开发工作,实现ORM的统一。JPA作为一项对象持久化的标准,不但可以获得Java EE应用服务器的支持,还可以直接在Java SE中使用。JPA必将...
使用SpringBoot-JPA进行自定义保存及批量保存功能 使用SpringBoot-JPA进行自定义保存及批量保存功能是指在Spring Boot应用程序中使用JPA(Java Persistence API)来实现自定义的保存和批量保存功能。JPA是一个Java ...
《Spring Data JPA从入门到精通》是一套深入学习Spring Data JPA的资源,结合了两本书的内容,旨在帮助开发者全面掌握这一强大的数据访问技术。Spring Data JPA是Spring框架的一部分,它为Java Persistence API (JPA...
Spring Boot JPA与Security是两个在Java开发领域中极为重要的技术框架,它们分别专注于数据访问和应用程序的安全管理。本文将深入探讨这两个框架的核心概念、如何整合使用以及在实际项目中的应用。 Spring Boot是由...
在Java开发领域,Spring Boot和JPA(Java Persistence API)是两个非常重要的框架。Spring Boot简化了Spring应用程序的创建和配置过程,而JPA作为Java的ORM(对象关系映射)标准,允许开发者以面向对象的方式操作...