---
# System prepended metadata

title: Intro
tags: [Java, JPA, Spring]

---

# Intro
###### tags: `JPA` `Spring` `Java`
**Java Persistence API** : 用於物件持久化的API
Java EE 5.0 平台標準的ORM規範
使得應用程序以統一的方式訪問調用數據層

**JPA是一個ORM的規範**
**Hibernate、OpenJPA、TopLink都是JPA的一種實現**

優勢
1. 標準化 : 
	提供相同API，這保證了基於JPA開發的應用能夠透過少量修改就能在不同的JPA框架下執行。
2. 簡單易用、集成方便 :
	提供簡單的編程模型。
3. 可媲美JDBC的查詢能力 :
	JPA的查詢語言是物件導向的，定義了獨特的JPQL且支持批量更新修改、JOIN、GROUP BY、HAVING等高級查詢語言。
4. 支援物件導性的高級特性 :
	支援物件導向的繼承、多形、類別間的複雜關係。


JPA的三方面技術
1. ORM :
	支援XML和JDK 5.0 註釋兩種方式來描述物件與表的對應關係
2.  JPA的API
	用來操作實體對象，執行CRUD操作
3.  JPQL
	透過物件導向的方式操作資料庫查詢數據，避免程序與SQL緊密耦合