Java-EJB 第三章JPA实体

一、JPA(Java持久化API)

JPA为JavaEE平台提供了ORM框架的规范。

JPA包含大量方便易用的API,可以使开发人员摆脱繁重的JDBC底层处理,以更加面向对象的方式进行持久化操作。

JPA操作的持久化对象称为实体。

  • 实体、实体主键、实体与表的对应关系
  • 实体的生命周期
  • 持久化上下文的原理
  • 实体管理器的持久化操作方法

3.1 JAP概述

  • JPA(Java Persistence API,Java持久化API)为Java EE平台提供了ORM框架的规范。JPA是位于JDBC 之上的一个更高层抽象,包含大量方便易用的API,可以使开发人员摆脱繁重的JDBC底层处理,以更加面向对象的方式进行持久化操作。

3.1.1 ORM

  • ORM(Object-Relational Mapping,对象关系映射) 是解决对象和关系模型的不匹配问题的一种框架。

  • 由于对象和关系模型采用了不同的数据组织形式,造成使用面向对象方式操作关系型的数据变得尤为困难。

ORM 的解决方法是

(1)提供一种专门负责持久化的容器,预先配置映射关系,自动生成SQL语句,提高开发效率。

(2)由持久化容器提供可控制的加载策略和适当范围的缓存。

表3-1 对象和关系模型中的对应概念

Java面向对象模型 关系模型
对象(实例) 记录(行)
状态(属性) 字段(列)
行为(方法) 存储过程、触发器等于对象的方法基本对应
身份(引用) 主键
对其他对象的引用 外键关系
继承和多态 不支持

在这里插入图片描述

3.1.2 JPA持久化提供器

​ 同JDBC类似,JPA只是一个规范,并没有具体实现。但JPA是Java EE规范,所以符合Java EE规范的容器都应该提供JPA的具体实现,这称为JPA持久化提供器。(类似于JDBC驱动程序)

​ JBOSS默认使用Hibernate作为持久化提供器。

3.2 JPA实体

  • JPA操作的持久化对象称为实体(Entity),简单的POJO就可以被JPA持久化,但需要配置基本的映射关系。大部分情况下,实体对应于数据库中的,实体的属性对应于表的,实体的每个对象则对应表中的每条记录
    在这里插入图片描述

  • 为了完成数据持久化,应用程序需要通过JPA中特定注解标识各种映射关系提供给JPA持久化提供器

  • JPA使用的所有注解都位于javax.persistence包下。

  • 标识一个实体必须要有**@Entity** 和**@Id**两个注解,其他的映射关系提供默认行为。

3.2 JPA实体

3.2.1声明实体

只需在类上加上**@Entity注解即可声明为JPA**实体。

3.2.2实体主键

每个实体必须有一个主键,且是唯一的。JPA支持使用基本类型和Serializable类型的属性作为实体的主键。使用**@Id注解将实体的一个属性声明为主键。除了直接声明在属性上,通常更推荐在get方法上声明主键**。

3.2.3映射实体

​ 映射表: @Table(name=“user”) 实体类前

​ 映射列: @Column(name=“id”) get方法前

  • 如果省略@Table和 @Column注解,则分别默认会被映射到与实体类同名的表以及与实体属性名称相同的列。

  • 如果实体中存在不需要被映射的列时,必须使用@Transient注解进行显式的声明

3.2.4 生成主键值

  • JPA要求实体必须具有主键,实体的主键值可以在应用程序中指定,通常有数据库自动生成,使用@GeneratedValue注解指定主键值生成方式, 主要取决于GenerationType的四个值:

  • 身份列(GenerationType.IDENTITY)

  • 序列(GenerationType.SEQUENCE)

  • 表生成器(GenerationType.TABLE)

默认策略(GenerationType.AUTO)

Produce.java

@Entity
@Table
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值