本文主要是介绍JPA (Java Persistence API)概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在ORM的概念大行其道之际,JavaEE平台也不得不做出适当调整,直接在平台层提供了对象/关系映射机制JPA,并结合了其重要的Entity JavaBean。JPA概括起来包括如下3个部分:
- 对象/关系映射元数据及API
- Java对象查询语言
- Java Criteria查询API
JPA 中的Entity是一种可持久化的域对象。一个Entity类对应关系数据库中的一张表,一个Entity实例对应关系数据库中的表的一行记录。
一个Entity类的定义,需要遵守如下规则:
- 由@javax.persistence.Entity标注
- 至少拥有一个public或protected的、无参数的构造函数
- 不能是final的类,也不能包含任何final的方法或可持久化的类变量
- 可持久化的类变量不能是public的,只能被Entity类中的方法直接访问(可以通过getter方法被应用间接访问)
- 可以继承自任何类(Entity类或非Entity类),也可以被任何类继承
- 必要情况下实现Serializable接口
1)持久化字段
Entity类中的可持久化的类变量也被称为持久化字段。持久化字段的持久化标注是定义在类变量上的。通常,持久化字段将被存储到对应的数据库中,除非以下情况:
- 持久化字段同时被@javax.persistence.Transient标注
- 持久化字段同时被Java关键字transient修饰
持久化属性的持久化标注是定义在类变量的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
这篇关于JPA (Java Persistence API)概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!