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简介的更多相关文章

  1. Spring Boot 之Spring data JPA简介

    文章目录 添加依赖 添加entity bean 创建 Dao Spring Data Configuration 测试 Spring Boot 之Spring data JPA简介 JPA的全称是Ja ...

  2. Spring Data JPA简介 Spring Data JPA特点

    Spring Data JPA 是Spring基于ORM框架.JPA规范的基础上封装的一套JPA 应用框架,底层使用了Hibernate 的JPA技术实现,可使开发者用极简的代码即可实现对数据的访问和 ...

  3. JPA学习笔记1——JPA基础

    1.JPA简介: Java持久化规范,是从EJB2.x以前的实体Bean(Entity bean)分离出来的,EJB3以后不再有实体bean,而是将实体bean放到JPA中实现.JPA是sun提出的一 ...

  4. Maven 版 JPA 最佳实践(转)

    项目结构图 数据库环境 数据库:MySQL 版本:5.x 数据库名:jpa-demo 用户名密码:root/1234 代码清单 1:数据库脚本: ? 1 2 3 4 5 6 7 8 9 10 11 1 ...

  5. Maven 版 JPA 最佳实践

    项目结构图 数据库环境 数据库:MySQL 版本:5.x 数据库名:jpa-demo 用户名密码:root/1234 代码清单 1:数据库脚本: /* Navicat MySQL Data Trans ...

  6. springboot集成jpa

    spring data jpa简介 spring data jpa是spring基于hibernate及jpa规范封装出来的一套持久层框架.该框架极大的降低了开发者工作量,提升开发效率.提供的关键字可 ...

  7. Spring Boot从入门到精通之:二、Spring Boot整合JPA

    springboot-jpa 开发工具 系统: windows10 开发工具: Intellij IDEA 2018.2.6 springboot: 2.0.6.RELEASE jdk: 1.8.0_ ...

  8. JPA学习

    [JPA 简介]JPA(Java Persistence API) JPA 不是一个ORM 的框架, 而是一个ORM 的规范,只指定了一些接口, 具体的实现由应用服务器厂商来提供实现. JPA的实现产 ...

  9. spring boot学习(4) SpringBoot 之Spring Data Jpa 支持(1)

    第一节:Spring Data Jpa 简介 Spring-Data-Jpa JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate ...

随机推荐

  1. 201871010113-刘兴瑞《面向对象程序设计(java)》第十二周学习总结

    项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>http ...

  2. jenkins下载插件无插件显示+离线下载插件方法

    1.打开Jenkins插件管理,可选插件为空,无法选择自己需要的插件进行下载 打开插件管理的“高级”选项,在升级站点填写 http://mirror.xmission.com/jenkins/upda ...

  3. (day67)作业

    有以下广告数据(实际数据命名可以略做调整) ad_data = { tv: [ {img: 'img/tv/001.png', title: 'tv1'}, {img: 'img/tv/002.png ...

  4. 4.P1产品经理该如何学习提升

    0经验.想转型 对于想转型或者没有经验的人,这部分同学你肯定对产品本身有一定的了解了,但是在这个时候转型最痛苦的是你要从原来的工作转到一个新的工作中的时候,要回到一个原点.比如你是原来是做开发的,那么 ...

  5. 解决谷歌浏览器在F12情况下自动断点问题(Paused in debugger)

    解决谷歌浏览器在F12情况下自动断点问题(Paused in debugger) 最近在使用谷歌浏览器在调试js脚本的时候,每次按F12,再刷新页面,都会跳出如上图所示的图标,自动进入断点调试.如果不 ...

  6. asp.net的原理

    Asp.net的作业流是指什么?很多人都不是很了解,也不知道是用来干什么的有怎样运用,其实能够从简略的基础了解. 作业流(Workflow),便是“事务进程的部分或全体在核算机使用环境下的主动化”(i ...

  7. [HDU6288]Tree

    题目 题解 首先读题就很成问题....英语咋办呐!!! 直接考虑有点复杂,直接分析每一条边能否被选入最终答案.对于这条边,看看他的\(size[v]\) 与 \(n-size[v]\) 是否都大于等于 ...

  8. 简单的Python GUI界面框架

    Python开发GUI界面, 可以使用pyQT或者wxpython. 不过不论pyQT还是wxpython都需要比较多的学习成本.Python工程往往是用于快速开发的,有些时候引入pyQT,wxpyt ...

  9. angularjs事件通信$on,$emit,$broadcast详解

    公司项目开发用的是angularjs,关于事件通讯一直用的是EventBus,直到上周写一个小组件懒得引用EventBus时,想到用angularjs自带的事件通信时,结果很尴尬的忘记原生方法单词怎么 ...

  10. Jenkins—Master/Slave模式

    Jenkins可部署在windows或者linux平台上,项目系统的用户多数为windows系统.如果Jenkins部署在linux上,而自动化任务要在windows平台执行,那么就需要使用Jenki ...