JPA简介
JPA的学习
JPA是Java Persistence API的简称,中文名Java持久层API。是Java EE5.0平台中Sun为了统一持久层ORM框架而制定的一套标准,注意是一套标准,而不是具体实现,不可能单独存在,需要有其实现产品。Sun挺擅长制定标准的,例如JDBC就是为了统一连接数据库而制定的标准,而我们使用的数据库驱动就是其实现产品。JPA的实现产品有HIbernate,TopLink,OpenJPA等等。值得说一下的是Hibernate的作者直接参与了JPA的制定,所以JPA中的一些东西可以与Hibernate相对比。
JPA特点:
- JPA可以使用xml和注解映射源数据,JPA推荐使用注解来开发。
- 它有JPQL语言也是面向对象的查询语言,和hql比较类似。
JPA对象关系映射
映射方向
映射方向可分为两个部分: -
- 单向关系 - 在这种关系中,只有一个实体可以将属性引用到另一个实体。它仅包含一个侧面,由于指定如何更新可以在数据库中进行。
- 双向关系 - 这种关系包含两边 - 既包含一个侧面,也包含另一个侧面。 所以这里每个实体都有一个关系字段或将该属性引用到其他实体。
映射类型
以下是各种ORM映射类型 -
- 一对一 - 此关联由
@OneToOne注释表示。在这里,每个实体的实例与另一个实体的单个实例相关。 - 一对多 - 此关联由
@OneToMany注释表示。 在这种关系中,一个实体的实例可以与另一个实体的多个实例相关联。 - 多对一 - 此映射由
@ManyToOne注释定义。 在这种关系中,一个实体的多个实例可以与另一个实体的单个实例相关联。 - 多对多 - 此关联由
@ManyToMany注释表示。 在这种关系中,一个实体的多个实例可能与另一个实体的多个实例有关。 在这个映射中,任何一方都可以成为所有者方
实体属性
这些是对象必须具有的实体的属性 -
- 持久性 - 如果一个对象存储在数据库中并且可以随时访问,则该对象称为持久性。
- 持久性标识 - 在Java中,每个实体都是唯一的,并表示为对象标识。 同样,当对象标识存储在数据库中时,它被表示为持久性标识。 该对象标识等同于数据库中的主键。
- 事务性 - 实体可以执行各种操作,例如:创建,删除,更新。 每个操作都会对数据库进行一些更改。它确保无论数据库中的任何更改是原子级成功还是失败。
- 粒度 - 实体不应该是基元,原始包装或具有单维状态的内置对象。
实体元数据
每个实体都与一些代表它的信息的元数据相关联。 这个元数据不是数据库,而是存在于类内部或外部。 此元数据可以采用以下形式 -
- 注解 - 在Java中,注解是表示元数据的标签形式。 这个元数据保存在类中。
- XML - 在此形式中,元数据在XML文件的类外部保存。
JPA简介的更多相关文章
- Spring Boot 之Spring data JPA简介
文章目录 添加依赖 添加entity bean 创建 Dao Spring Data Configuration 测试 Spring Boot 之Spring data JPA简介 JPA的全称是Ja ...
- Spring Data JPA简介 Spring Data JPA特点
Spring Data JPA 是Spring基于ORM框架.JPA规范的基础上封装的一套JPA 应用框架,底层使用了Hibernate 的JPA技术实现,可使开发者用极简的代码即可实现对数据的访问和 ...
- JPA学习笔记1——JPA基础
1.JPA简介: Java持久化规范,是从EJB2.x以前的实体Bean(Entity bean)分离出来的,EJB3以后不再有实体bean,而是将实体bean放到JPA中实现.JPA是sun提出的一 ...
- Maven 版 JPA 最佳实践(转)
项目结构图 数据库环境 数据库:MySQL 版本:5.x 数据库名:jpa-demo 用户名密码:root/1234 代码清单 1:数据库脚本: ? 1 2 3 4 5 6 7 8 9 10 11 1 ...
- Maven 版 JPA 最佳实践
项目结构图 数据库环境 数据库:MySQL 版本:5.x 数据库名:jpa-demo 用户名密码:root/1234 代码清单 1:数据库脚本: /* Navicat MySQL Data Trans ...
- springboot集成jpa
spring data jpa简介 spring data jpa是spring基于hibernate及jpa规范封装出来的一套持久层框架.该框架极大的降低了开发者工作量,提升开发效率.提供的关键字可 ...
- Spring Boot从入门到精通之:二、Spring Boot整合JPA
springboot-jpa 开发工具 系统: windows10 开发工具: Intellij IDEA 2018.2.6 springboot: 2.0.6.RELEASE jdk: 1.8.0_ ...
- JPA学习
[JPA 简介]JPA(Java Persistence API) JPA 不是一个ORM 的框架, 而是一个ORM 的规范,只指定了一些接口, 具体的实现由应用服务器厂商来提供实现. JPA的实现产 ...
- spring boot学习(4) SpringBoot 之Spring Data Jpa 支持(1)
第一节:Spring Data Jpa 简介 Spring-Data-Jpa JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate ...
随机推荐
- 201871010111-刘佳华《面向对象程序设计(java)》第十四周学习总结
201871010111-刘佳华<面向对象程序设计(java)>第十四周学习总结 实验十二 Swing图形界面组件(一) 实验时间 2019-11-29 第一部分:基础知识总结 1.设计 ...
- Scrum会议(第十一周)
十一周会议 1.任务分配: github相关代码 2.会议记录: 总结并阐述了自己在上周存在的问题以及解决了自己把自己的issue发在了自己的github,并没有把问题发在我们项目小组的项目的issu ...
- Maven配置教程
Maven的下载 在Maven的官网即可下载,点击访问Apache Maven. 下载后解压即可,解压后目录结构如下: Maven常用配置 在配置之前请将JDK安装好. 1. 环境变量配置 添加M2_ ...
- mysql--事务详解
事务的四大特性: # 原子性(atomicity) 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作 ...
- OC:浅析Runtime中消息转发机制
一.介绍 OC是一门动态性语言,其实现的本质是利用runtime机制.在runtime中,对象调用方法,其实就是给对象发送一个消息,也即objc_msgSend().在这个消息发送的过程中,系统会进行 ...
- 查询安装webpack4.0是否成功时提示无法找到的解决方法
最近使用webpack -v 查询webpack版本时提示无法找到 然后我试着重新全局安装webpack,提示还需要安装webpack-cli 选择yes后虽能成功安装webp ...
- visdom 简单使用
 官方网址: https://github.com/facebookresearch/visdom 入门教程: http://www.ainoobtech.com/pytorch/pytorch-v ...
- ASP.NET Core Identity 的示例
1. appsettings.json { "ConnectionStrings": { "DefaultConnection": "Server=( ...
- 英语阅读——The confusing pursuit of beauty
这篇文章是<新视野大学英语>第四册的第二单元的文章,很好的一篇议论文,读起来也很有意思. 1 If you're a man, at some point a woman will ask ...
- java中的常用类(二)
java中的常用类(二) Math类 Math类的声明:public final class Math extends Object Math类是与数学计算有关的类,里面的方法都是静态方法,直接使用类 ...
