JPA基础知识(一):简介、基本注解

QGIS|如何将WGS84转换为CGCS 2000坐标系? QGIS 3中如何将WGS84转换为国家2000大地坐标系? 今天来回答一位朋友在后台留言提出的问题:怎么将WGS84坐标转换为国家2000大地坐标系。 01工程坐标系 从地图窗口右下角的状态栏可以看到当前地图窗口的坐标系,即工程坐标系(Project CRS)。当前地图可以由多个图层组成,各种来源数据的坐标参照系(Layer CRS)并不一定相同,QGIS在绘制图层之前将根据工程坐标系进行动态坐标转换,然后显示在地图画布中。 因此,在处理空间数据的过程中,一定要特别注意... 阅读详情

相关文章:
JPA基础知识(一):简介、基本注解
JPA基础知识(二):使用JPA持久化对象的步骤
JPA基础知识(三):相关接口/类
JPA基础知识(四):映射关联关系

JPA基础知识(一):简介、基本注解

一、简介

JPA全称Java Persistence API,用于对象持久化。
JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
在这里插入图片描述
sun公司定义了JDBC接口,程序员可以通过接口来访问数据库,统一了java应用程序访问数据库的标准。
在这里插入图片描述
JPA统一了java应用程序使用各个ORM框架的方式。

二、JPA和Hibernate的关系

  • JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系)
    • JPA 是规范:JPA 本质上就是一种 ORM 规范,不是ORM 框架 —— 因为 JPA 并未提供 ORM 实现,它只是制订了一些规范,提供了一些编程的 API 接口,但具体实现则由 ORM 厂商提供实现
    • Hibernate 是实现:Hibernate 除了作为 ORM 框架之外,它也是一种 JPA 实现
      从功能上来说, JPA 是 Hibernate 功能的一个子集

  • JPA 包括 3方面的技术
    • ORM 映射元数据:主要是使用注解的方式来进行映射。
      JPA 支持 XML 和 JDK 5.0 注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。
    • JPA 的 API:用来操作实体对象,执行CRUD操作,框架在后台完成所有的事情,开发者从繁琐的 JDBC和 SQL代码中解脱出来。
    • 查询语言(JPQL):这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序和具体的 SQL 紧密耦合。

三、JPA 基本注解

JPA 基本注解:@Entity, @Table, @Id, @GeneratedValue,@Column, @Basic,@Transient, @Temporal, 用 table 来生成主键详解

1-1、@Entity

@Entity 标注用于实体类声明语句之前,指出该Java 类为实体类,将映射到指定的数据库表。如声明一个实体类 Customer,它将映射到数据库中的 customer 表上。

1-2、@Table

当实体类与其映射的数据库表名不同名时需要使用 @Table 标注说明,该标注与 @Entity 标注并列使用,置于实体类声明语句之前,可写于单独语句行,也可与声明语句同行。
@Table 标注的常用选项是 name,用于指明数据库的表名
@Table 标注还有一个两个选项 catalog 和 schema 用于设置表所属的数据库目录或模式,通常为数据库名。uniqueConstraints 选项用于设置约束条件,通常不须设置。

1-3、@Id

@Id 标注用于声明一个实体类的属性映射为数据库的主键列。该属性通常置于属性声明语句之前,可与声明语句同行,也可写在单独行上。
@Id 标注也可置于属性的getter方法之前。

1-4、@GeneratedValue

@GeneratedValue 用于 标注主键的生成策略 ,通过 strategy 属性指定。默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:SqlServer 对应 identity,MySQL 对应 auto increment。

  • 在 javax.persistence.GenerationType 中定义了以下几种可供选择的策略:
    • IDENTITY:采用数据库 ID自增长的方式来自增主键字段,Oracle 不支持这种方式;
    • AUTO: JPA自动选择合适的策略,是默认选项;
    • SEQUENCE:通过序列产生主键,通过 @SequenceGenerator 注解指定序列名,MySql 不支持这种方式
    • TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。
1-5、@Basic

@Basic 表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的 getXxxx() 方法,默认即为@Basic

fetch: 表示该属性的读取策略,有 EAGER 和 LAZY 两种,分别表示主支抓取和延迟加载,默认为 EAGER.
optional: 表示该属性是否允许为null, 默认为true

1-6、@Column

当 实体的属性与其映射的数据库表的列不同名时 需要使用@Column 标注说明,该属性通常置于实体的属性声明语句之前,还可与 @Id 标注一起使用。

  • @Column 标注的常用属性是 name,用于设置映射数据库表的列名。此外,该标注还包含其它多个属性,如:unique 、nullable、length等。
  • @Column 标注的 columnDefinition 属性: 表示该字段在数据库中的实际类型. 通常 ORM 框架可以根据属性类型自动判断数据库中字段的类型,但是对于Date类型仍无法确定数据库中字段类型究竟是DATE,TIME还是TIMESTAMP。此外,String的默认映射类型为VARCHAR, 如果要将 String 类型映射到特定数据库的 BLOB 或TEXT 字段类型.
  • @Column 标注也可置于属性的getter方法之前
1-7、@Transient

表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.

  • 如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic
1-8、@Temporal

在核心的 Java API 中并没有定义 Date 类型的精度(temporal precision). 而在数据库中,表示 Date 类型的数据有 DATE,TIME 和 TIMESTAMP 三种精度(即单纯的日期,时间,或者两者 兼备).在进行属性映射时可使用@Temporal注解来调整精度.

GEO的工作原理,以及GEO会催生出更多的爬虫岗位吗? 摘要: GEO(生成式引擎优化)是提升内容在AI搜索(如ChatGPT、Perplexity等)中引用率的新策略,核心在于优化内容的可抓取性、语义清晰度、权威性。与传统SEO不同,GEO聚焦AI的引用逻辑,需通过爬虫监控AI回答、逆向分析引用源特征(如结构化数据、权威背书),并构建自动化工具优化内容。爬虫工程师需转型为“AI可见性基础设施构建者”,重点关注高权威站点、知识库及官方信息源,同时确保技术可抓取性(如放行AI爬虫UA)。GEO的核心是从“排名”转向“被AI引用”,强调实体识别与动态对话适配。 阅读详情

相关推荐

STM32 HardFault调试:寄存器分析与堆栈回溯实战

HardFault是Cortex-M内核中最关键的不可屏蔽异常,本质是处理器对非法指令执行、内存访问越界、堆栈溢出等底层硬件错误的强制响应。其原理根植于ARMv7-M异常模型,通过自动压栈保存xPSR/PC/LR等核心寄存器实现上下文捕获。技术价值在于为嵌入式系统提供确定性故障归因能力,支撑高可靠工业设备开发。典型应用场景涵盖FreeRTOS任务崩溃定位、DMA中断越界诊断及MPU保护机制验证。本文聚焦STM32平台,深入解析LR寄存器低4位判别堆栈模式、基于MSP/PSP的PC地址提取方法,并结合Keil

weixin_30951515的博客 143

JPA学习笔记1——JPA基础

1.JPA简介:Java持久化规范,是从EJB2.x以前的实体Bean(Entity bean)分离出来的,EJB3以后不再有实体bean,而是将实体bean放到JPA中实现。JPA是sun提出的一个对象持久化规范,各JavaEE应用服务器自主选择具体实现,JPA的设计者是Hibernate框架的作者,因此Hibernate作为Jboss服务器中JPA的默认实现,Oracle的Weblogic使用EclipseLink(以前叫TopLink)作为默认的JPA实现,IBM的Websphere和Sun的Gla

Tony Chen的专栏 5万+

计组实验4 控制冒险与分支预测

目录前言实验内容背景知识分支预测技术⭐阻塞周期计算方法不开启 BTB开启 BTBpart 1 矩阵乘法与优化未开启 BTB 的分析开启 BTB 的分析part 2 设计代码使 BTB 无效part 3 循环展开优化矩阵乘法未开启 BTB开启 BTB结束语结论 前言 上一篇博客:计组实验3 mips冒险之流水线冒险 摸了半个月了。。。咕咕咕 今天来写计组实验 4 这个实验非常简单,就是有点难。 这个实验比较容易算错,或者是被模拟器出人意料的结果搞的神神叨叨的,所以今天来记录并且详细分析该实验。 注:请务必阅

AKGWSB 's blog 5667

java jpa面试题_jpa面试题解析,java面试题

jpa在目前企业面试中经常会被问到,多了解一些相关面试题有益无害,小编这里就整理了常见jpa面试题,有兴趣的小伙伴们可以多了解一下。一、jpa是什么?答:Java Persistence API(JPA)是Java的规范,用于在Java对象和关系数据库之间保存数据。JPA充当面向对象的域模型和关系数据库系统之间的桥梁。 由于JPA只是一个规范,它本身不执行任何操作。 它需要一个实现。因此,Hibe...

weixin_39620279的博客 4428

YOLOV26详解 从原理到部署

计算机视觉领域最具影响力的目标检测框架迎来重大里程碑。2026年1月,Ultralytics 正式发布 YOLOv26——这不是一次简单的版本迭代,而是一场面向边缘计算时代的架构重构。本专栏基于 Ultralytics 官方技术白皮书、YOLO Vision 2025 大会首发内容及国际前沿研究成果,系统拆解 YOLOv26 从算法原理到工程落地的全栈技术体系。与常规教程不同,我们聚焦与,帮助你在端侧 AI 部署的实战中掌握核心竞争力。

u012133341的博客 2017

Python:爬取数据出现response.status_code为403解决方法

目录前言1. 原理2. 代码 前言 出现403的返回结果 主要是有些服务器为了防止访问量过大,承受服务器的压力,或者是拒绝你的访问。服务器接收到这个信息,理应返回了这个403的信息 在前一块的代码中解决了 Python:爬取数据出现response.status_code为418解决方法 如果还出现了403的访问错误 可以通过如下解决 1. 原理 服务器拒绝访问,可以通过给服务器登录,获取当前的cookie来得到网址的信任。得以爬取该网址的信息 在head头中加入cookie的信息 具体怎么查找该cooki

码农研究僧的博客 1万+

JPA基本使用,java工作三年面试题

JPA的API介绍 Persistence对象: 主要作用是用于获取EntityManagerFactory对象的,通过调用该类的createEntityManagerFactory静态方法,根据配置文件中持久化单元名称创建EntityManagerFactory。 String unitName = “myJpa”; EntityManagerFactory factory= Persistence.createEntityManagerFactory(unitNam...

m0_64384350的博客 962

【数据集6】全球人工不透水面积GAIA(清华数据)

全球人工不透水面GAIA简介及其应用

WW、forever的博客 3803

Spring JPA面试题

spring data jpa相关面试题

llg3189609554的博客 1207

手机开发实战58——小区广播介绍2

业务 针对小区广播短消息的特点,可以提供一些基于目前短消息不能或不适合提供的服务: 1. 显示网络服务基站名称:用户可以随时了解手机登记在哪个基站下,特别是在边界交叉覆盖区域,用户可以清楚的知道通话建立在哪个基站下,在用户投诉和故障描述中也会有所帮助; 2. 提供用户问候信息:可以在覆盖机场、车站等地区的基站广播一些用户问候语或一些企业形象广告语; 3. 充分利用小区广播地

xjbclz的专栏 772

Android 10.0 SystemUI 屏蔽状态栏消息推送弹出的悬浮通知

在状态栏中,有一些通知类似 消息推送 弹出的 悬浮通知,弹出30秒之后会消失掉 要想屏蔽掉这些通知,首选知道这些通知是怎么产生的 通知类型 NotificationContentInflater.java 详细的介绍各种通知的类型 frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentInflater.java /** * The defau

安卓兼职framework和app工程师的博客 1542

jpa面试题

jpa默认的FetchType是LAZY还是EAGER lazy么,错。 eager么,还是错。 这就是这个问题的坑,因为要区分来看。 onetoone默认是eager manytoone默认eager onetomany默认是lazy ...

enthan809882的博客 4264

cesium 实时轨迹

运用cesium中model和polyline添加模型和轨迹线,用CallbackProperty方法来实时改变经纬度。

God's asylum的博客 1964

JPA常用注解详细讲解

文章目录一.JPA优势:二.JPA三方面的技术:三.注解1.基本注解@Entity@Table@Column@Id@IdClass@GeneratedValue@Basic@Transient@Enumerated2.关联关系注解(1)@OneToOne一对一(2)@OneToMany一对多单向关联(3)一对多双向关联(4)自关联(5)@ManyToOne多对一单向关联(6)@ManyToMany多对多单向关联(7)多对多双向关联 一.JPA优势: 标准化;简单易用,集成方便;可以媲美JDBC的查询能力;支

。。。 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JPA基本注解

对JPA规范的一些基本标签的介绍

生活,本身就是一场“知行合一”的修行。 1754

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JPA 的基本注解

看了 JPA 的 Helloworld 之后说一下 JPA 的基本注解 1.@Entity:修饰实体类,指明该类将映射到指定的数据表,例如:Customer 类默认的数据表名为 customer 2.@Table:当实体类与映射的数据库表名不同名时需要使用 @Table 注解,该注解与 @Entity 注解并列使用,使用其name 属性指明数据库的表名 1 @Table(nam...

AlfredSong的博客 681

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JPA系列一:简介

1、简介: Java Persistence API:用于对象持久化的 API。 Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层。 2、JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系):  JPA 是规范:JPA 本质上就是一种 ORM 规范,不是ORM 框架 —— 因为 JPA 并未提供 ORM 实现,它只是制订了一些规范...

苍穹尘的博客 7234

SpringBoot-整合 JPA

JPA(Java Persistence API)意即 Java 持久化 API,是 Sun 官方在 JDK5.0 后提出的 Java 持久化规范(JSR 338,这些接口所在包为 javax.persistence,详细内容可参考。JPA 的出现主要是为了简化持久层开发以及整合 ORM 技术,结束 Hibernate、TopLink、JDO 等 ORM 框架各自为营的局面。JPA 是在吸收现有 ORM 框架的 基础上发展而来,易于使用,伸缩性强。

逍遥人世欢 1726

JPA基础知识及JPA常用注解

JPA   全称Java Persistence API,通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。   1、JPA和Hibernate的关系   简而言之 JPA 是一个规范或者接口 Hibernate 是 JPA 的一个实现     JPA与Hibernate的关系类似于JDBC和JDBC驱动的关系,是对...

weixin_30486037的博客 297

JPA简介及其使用详解

JPA简介及其使用详解 一、Spring data JPA简介 Spring data JPA是Spring在ORM(对象关系映射)框架,以及JPA规范的基础上,封装的一套JPA应用框架,并提供了一整套的数据访问层解决方案。 二.JPA常用注解 注解 解释 @Entity 声明类为实体或表 @Table 声明表名 @Basic 指定非约束明确的各个字段 @Embedded 指定类或它的值是一个可嵌入的类的实例的实体的属性 @Id 指定的类的属性,用于识别(一个表中的主键)

weixin_43157187的博客 3642

spirng data JPA教程(二)基本注解的使用

spirng boot JPA教程(二)基本注解的使用 上篇文章讲解了spring boot JPA的基本的增删改查操作,这次我们主要讲下实体类中基本注解的使用方法 spring boot JAP 中定义实体类时,用到的基本注解包括: @Entity、@Table、@Id、@IdClass、@GeneratedValue、@Basic、@Transient、@Column、@Temporal、@E...

独钓寒江雪 2135

Spring Data JPA 实战 - JPA基本注解

Spring Data JPA 是基于 JPA(Java Persistence API)规范构建的,而 JPA 提供了一组注解来帮助开发者定义实体类与数据库表之间的映射关系。

qq_33240556的博客 842

JPA基础知识----JPA 基本注解,JPA API

JPA 是什么     Java Persistence API:用于对象持久化的 API     Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层 JPA和Hibernate的关系     JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系):       - JPA 是规范:JPA 本质上就是一种  ORM 规范,不是

ChangWen的博客 1万+

JPA的基本注解

JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。其中注解方式简单快捷高效,在开发中强烈推荐,文中主要总结了一些常用而重要的注解。        JPA通常的注解方式方式包括:基于属性(property-based)和基于字段(field-based)   Note:同一个实体类中必须并且只能使用其中一种注解方式

u013828787的专栏 482

【Spring Data JPA】JPA常用注解

@Entity【指定该实体类被JPA管理】 @Table【指定该实体类对应哪张表】 @Id【单个主键】 @IdClass【联合主键】 @Column【表示实体类属性对应数据库表的哪一字段(列)】

杜小舟的博客 2688
上一篇: Struts2访问流程和架构
下一篇: JPA基础知识(三):相关接口/类
Xxacker的Latitude
博客等级 码龄9年 64粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值