JPA (Java Persistence API)概述

在ORM的概念大行其道之际,JavaEE平台也不得不做出适当调整,直接在平台层提供了对象/关系映射机制JPA,并结合了其重要的Entity JavaBean。JPA概括起来包括如下3个部分:对象/关系映射元数据及APIJava对象查询语言Java Criteria查询API 1. EntityJPA 中的Entity是一种可持久化的域对象。一个Entity类对应关系
摘要由CSDN通过智能技术生成

在ORM的概念大行其道之际,JavaEE平台也不得不做出适当调整,直接在平台层提供了对象/关系映射机制JPA,并结合了其重要的Entity JavaBean。JPA概括起来包括如下3个部分:

  • 对象/关系映射元数据及API
  • Java对象查询语言
  • Java Criteria查询API 


1. Entity

JPA 中的Entity是一种可持久化的域对象。一个Entity类对应关系数据库中的一张表,一个Entity实例对应关系数据库中的表的一行记录。

一个Entity类的定义,需要遵守如下规则:

  • 由@javax.persistence.Entity标注
  • 至少拥有一个public或protected的、无参数的构造函数
  • 不能是final的类,也不能包含任何final的方法或可持久化的类变量
  • 可持久化的类变量不能是public的,只能被Entity类中的方法直接访问(可以通过getter方法被应用间接访问)
  • 可以继承自任何类(Entity类或非Entity类),也可以被任何类继承
  • 必要情况下实现Serializable接口

Entity实例的持久化就是对其中类变量或属性的持久化。根据表现形式,可以分为持久化字段(Persistent Fields)和持久化属性(Persistent Properties)。

1)持久化字段

Entity类中的可持久化的类变量也被称为持久化字段。持久化字段的持久化标注是定义在类变量上的。通常,持久化字段将被存储到对应的数据库中,除非以下情况:

  • 持久化字段同时被@javax.persistence.Transient标注
  • 持久化字段同时被Java关键字transient修饰

2)持久化属性

持久化属性的持久化标注是定义在类变量的getter方法上的。持久化属性都必须拥有getter/setter方法。如果类变量被如下定义,则不能在该类变量的getter方法上设置持久化标注,即这样的类变量不可能同时是持久化属性:

  • 类变量被@javax.persistence.Transient标注
  • 类变量被Java关键字transient修饰

2. Entity Relationship

Entity和Entity之间的关系称为Entity Relationship,Entity关系的表示是通过Entity类中的关系字段或关系属性。Entity关系的类型(用以修饰关系字段或关系属性的标注)如下:

  • @javax.persistence.OneToOne
  • @javax.persistence.OneToMany
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值