JPA - Kiến trúc
Java Persistence API là một nguồn để lưu trữ các thực thể kinh doanh dưới dạng các thực thể quan hệ. Nó chỉ ra cách xác định ĐỐI TƯỢNG JAVA PLAIN CŨ (POJO) là một thực thể và cách quản lý các thực thể có quan hệ.
Kiến trúc cấp độ lớp
Hình ảnh sau đây cho thấy kiến trúc mức lớp của JPA. Nó hiển thị các lớp và giao diện cốt lõi của JPA.
Bảng sau đây mô tả từng đơn vị được hiển thị trong kiến trúc trên.
Các đơn vị | Sự miêu tả |
---|---|
EntityManagerFactory | Đây là một lớp nhà máy của EntityManager. Nó tạo và quản lý nhiều cá thể EntityManager. |
EntityManager | Nó là một Giao diện, nó quản lý các hoạt động liên tục trên các đối tượng. Nó hoạt động giống như nhà máy cho phiên bản Truy vấn. |
Entity | Các thực thể là các đối tượng tồn tại, lưu trữ dưới dạng các bản ghi trong cơ sở dữ liệu. |
EntityTransaction | Nó có mối quan hệ 1-1 với EntityManager. Đối với mỗi EntityManager, các hoạt động được duy trì bởi lớp EntityTransaction. |
Persistence | Lớp này chứa các phương thức tĩnh để lấy thể hiện EntityManagerFactory. |
Query | Giao diện này được thực hiện bởi mỗi nhà cung cấp JPA để có được các đối tượng quan hệ đáp ứng các tiêu chí. |
Các lớp và giao diện trên được sử dụng để lưu trữ các thực thể vào cơ sở dữ liệu dưới dạng bản ghi. Chúng giúp các lập trình viên giảm bớt nỗ lực viết mã để lưu trữ dữ liệu vào cơ sở dữ liệu để họ có thể tập trung vào các hoạt động quan trọng hơn như viết mã để ánh xạ các lớp với bảng cơ sở dữ liệu.
Mối quan hệ lớp JPA
Trong kiến trúc trên, các quan hệ giữa các lớp và giao diện thuộc về gói javax.persistence. Sơ đồ sau đây cho thấy mối quan hệ giữa chúng.
Mối quan hệ giữa EntityManagerFactory và EntityManager là one-to-many. Nó là một lớp nhà máy đối với các cá thể EntityManager.
Mối quan hệ giữa EntityManager và EntityTransaction là one-to-one. Đối với mỗi hoạt động EntityManager, có một cá thể EntityTransaction.
Mối quan hệ giữa EntityManager và Query là one-to-many. Nhiều số lượng truy vấn có thể thực thi bằng một phiên bản EntityManager.
Mối quan hệ giữa EntityManager và Entity là one-to-many. Một cá thể EntityManager có thể quản lý nhiều Thực thể.