Transcript JPA
JAVE PERSISTENCE API (JPA)
1
OBJECT RELATIONAL
MAPPING(ORM)
Ánh xạ dữ liệu của đối tượng vào trong cơ sở dữ
liệu quan hệ.
2
GIỚI THIỆU JAVA PERSISTENCE API()
JPA là một đặc tả Java cho việc truy xuất, quản lý
dữ liệu giữa các object/class và một cơ sở dữ liệu
quan hệ sử dụng công nghệ ORM (Object to
Relational Mapping).
Được phát triển như một phần của Java
Specification Request (JSR) 220
Mục tiêu làm đơn giản hóa EJB CMP entity beans.
Đóng gói trong javax.persistence
JPA có thể sử dụng cả trong môi trường J2SE lẫn
J2EE.
3
KIẾN TRÚC JPA
4
MAPPING MỘT ENITTY
Entity là một POJO (Plain Old Java Object)
Được map bằng một trong hai cách
Mô tả trong XML descriptor
Sử dụng annotations trong từng class
Được xác định với @Entity
Khóa chính được thông qua @Id
Chứa các persitent fields hoặc các properties
Các thuộc tính được truy xuất thông qua
getters/setters là “properties”
Các thuộc tính được truy xuất trực tiếp được gọi là
“fields”
5
PERSISTENCE CONTEXT
Đóng vai trò như một connection giữa thể hiện
của entity trong bộ nhớ và database.
Xác định trong file cấu hình persistence.xml
Được thao tác thông qua EntityManager.
Entities
Persistence
Context
Database
6
ENTITYMANAGER
Dùng để truy xuất và quản lý trạng thái của
entity.
Tạo thông qua lớp EntityManagerFactory
7
ENTITY RELATIONSHIPS
Các kiểu liên kết giữa các entity
Các liên kết được thực hiện thông qua file
mapping orm.xml hay sử dụng các annotations
javax.persistence.OneToOne
javax.persistence.OneToMany
javax.persistence.ManyToOne
javax.persistence.ManyToMany
8
QUERIES
Queries
Dynamic
Named
Native
9
DYNAMIC QUERIES
10
NAMED QUERIES
11
NATIVE QUERIES
Native queries chứa câu lệnh SQL tự nhiên
Query query = em.createNativeQuery("SELECT *
FROM t_customer", Customer.class);
List<Customer> customers = query.getResultList();
12
REFERENCES
[1]. Antonio Goncalves, Beginning Java™ EE 6 Platform with
GlassFish™ 3, Apress, 2009
[2]. Rima Patel Sriganish, Gerald Brose, Micah silverman, Mastering
Enterprise JavaBeans 3.0, Wiley, 2006
[3]. Kent Ka Iok Tong, Beginning JSF™ 2 APIs and JBoss® Seam,
Apress, 2009
13
THE END
Thank you very much!!
14