Jpa Là Gì

     

JPA là gì?

Spring Boot JPA là một bản ghi chi tiết của Java để quản lý dữ liệu quan hệ trong các ứng dụng Java. Nó cho phép chúng ta truy cập và lưu trữ dữ liệu giữa các object/class Java và database quan hệ. JPA tuân theo Object-Relation Mapping (ORM). Nó là một tập hợp các interface. Nó cũng cung cấp một API EntityManager runtime để xử lý các câu query và giao dịch trên các object dựa trên database. Nó sử dụng ngôn ngữ truy vấn hướng đối tượng độc lập nền tảng JPQL (Java Persistent Query Language).JPA bao gồm ba lĩnh vực:The Java Persistence APIObject-Relational metadataBản thân API, được định nghĩa trong persistence package.JPA không phải là một framework. Nó định nghĩa một khái niệm có thể được thực thi bởi bất kỳ framework nào.

Bạn đang xem: Jpa là gì

Tại sao chúng ta nên sử dụng JPA?

JPA đơn giản hơn, gọn gàng hơn và ít tốn công sức hơn là JDBC, SQL hay ánh xạ viết tay. JPA thích hợp cho các ứng dụng phức tạp không tuân theo hiệu suất. Ưu điểm chính của JPA so với JDBC là: trong JPA, dữ liệu được biểu thị bằng các object và class trong khi trong JDBC dữ liệu được biểu diễn bằng các bảng và bản ghi. Nó sử dụng POJO để biểu diễn dữ liệu liên tục giúp đơn giản hóa việc lập trình database. Có một số ưu điểm khác của JPA:JPA tránh viết Ngôn Ngữ Định Nghĩa Dữ Liệu (DDL) bằng phương ngữ SQL dành riêng cho database. Thay vào đó nó cho phép ánh xạ trong XML hoặc sử dụng các annotation Java.JPA cho phép chúng ta tránh viết Ngôn Ngữ Thao Tác Dữ Liệu (DML) bằng phương ngữ SQL dành riêng cho database.JPA cho phép chúng ta save và load các object và đồ thị Java mà không cần bất kỳ ngôn ngữ DML nào.Khi chúng ta cần thực hiện các truy vấn JPQL, nó cho phép chúng ta viết các truy vấn dưới dạng các entity Java mà không phải là bảng và cột SQL.

Tính năng JPA

Có các tính năng sau của JPA:Là một repository mạnh mẽ và object-mapping abstraction tùy chỉnh .Hỗ trợ cho cross-store persistence. Tức là một entity có thể được lưu trữ một phần trong MySQL và Neo4j (Hệ thống quản lý cơ sở dữ liệu đồ thị).Tự động tạo các truy vấn từ ngay chính tên các phương thức truy vấn.Các lớp dựa vào tên miền cung cấp các thuộc tính cơ bản.Hỗ trợ kiểm tra quản lý minh bạch.Khả năng tích hợp mã repository tùy chỉnh.Dễ dàng tích hợp với Spring Framework với namespace tùy chỉnh.

Kiến trúc JPA

JPA là một nguồn để lưu trữ các entity doanh nghiệp dưới dạng các entity quan hệ. Nó chỉ ra cách định nghĩa POJO là một entity và cách quản lý các entity quan hệ.Hình sau mô tả kiến trúc các cấp độ class của JPA, cùng các class và interface cốt lõi mà được định nghĩa trong package javax persistence. Kiến trúc JPA chứa các đơn vị sau đây:Persistence: là một class chứa các phương thức tĩnh để lấy một instance EntityManagerFactory.EntityManagerFactory: là một class Factory của EntityManager. Nó tạo và quản lý nhiều instance EntityManager.EntityManager: Nó là một giao diện. Nó kiểm soát các hoạt động liên tục trên các đối tượng. Nó hoạt động cho phiên bản Truy vấn.Entity: Các entity là các đối tượng lưu trữ lâu dài như một bản ghi trong database.Persistence Unit: định nghĩa một tập hợp tất cả các class entity. Trong một ứng dụng, các instance EntityManager quản lý nó. Tập hợp các class entity đại diện cho dữ liệu được chứa trong một kho dữ liệu duy nhất.

Xem thêm: Giải Bài Tập Trang 24, 25 Sgk Toán 8 Luyện Tập Trang 25 Sgk Toán 8 Tập 1

EntityTransaction: có mối quan hệ 1:1 với các class EntityManager. Đối với mỗi EntityManager, các hoạt động được duy trì bởi class EntityTransaction.Query (Lệnh truy vấn): là một interface được thực hiện bởi mỗi nhà cung cấp JPA để có được các object quan hệ đáp ứng các tiêu chí.architecture

Mối quan hệ class JPA

Các class và interface chúng ta đã thảo luận ở trên duy trì một mối quan hệ. Hình dưới đây cho thấy mối quan hệ giữa các class và interface.Mối quan hệ giữa EntityManager và EntiyTransaction là 1:1. Có một instance EntityTransaction cho mỗi hoạt động EntityManager.Mối quan hệ giữa EntityManageFactory và EntiyManager là một-nhiều. Nó là một class factory chứa các instance EntityManager.Mối quan hệ giữa EntityManager và Query là một-nhiều. Chúng ta có thể thực hiện bất kỳ số lượng truy vấn nào bằng cách sử dụng một instance của class EntityManager.Mối quan hệ giữa EntityManager và Entity là một-nhiều. Một instance EntityManager có thể quản lý nhiều entity.

Triển khai JPA

JPA là một API mã nguồn mở. Có nhiều nhà cung cấp doanh nghiệp khác nhau như Eclipse, RedHat, Oracle, v.v. cung cấp các sản phẩm mới bằng cách thêm JPA vào trong sản phẩm. Có một số framework triển khai JPA phổ biến như Hibernate, EclipseLink, DataNucleus, v.v. Nó còn được gọi là công cụ Object-Relation Mapping (ORM).

Object-Relation Mapping (ORM)

Trong ORM, ánh xạ (mapping) các đối tượng Java tới các bảng database và ngược lại được gọi là Object-Relation Mapping. Ánh xạ ORM hoạt động như một cầu nối giữa database quan hệ (bảng và bản ghi) và ứng dụng Java (các class và object).Trong hình sau, layer ORM là một layer chuyển đổi. Nó điều chỉnh ngôn ngữ của đồ thị object sang ngôn ngữ của SQL và các bảng quan hệ.

Xem thêm: Dế Mèn Phiêu Lưu Ký Ngữ Văn 6, Soạn Dế Mèn Phiêu Lưu Ký, Soạn Bài Bài Học Đường Đời Đầu Tiên (Chi Tiết)

Layer ORM tồn tại giữa ứng dụng và database. Nó chuyển đổi các class và object Java để chúng có thể được lưu trữ và quản lý trong database quan hệ. Theo mặc định, tên class trở thành tên của bảng và các trường trở thành cột. Khi một ứng dụng thiết lập, mỗi hàng trong bảng tương ứng với một object.

Phiên bản JPA

Các phiên bản trước của EJB định nghĩa persistence layer kết hợp với lớp logic nghiệp vụ bằng cách sử dụng interface javax.ejb.EntityBean. Đặc điểm EJB bao gồm cả việc xác định JPA.Trong khi giới thiệu EJB 3.0, persistence layer đã được tách ra và được chỉ định là JPA 1.0 (Java Persistence API). Các đặc điểm kỹ thuật của API này đã được phát hành cùng với các đặc điểm kỹ thuật của JAVA EE5 vào ngày 11 tháng 5 năm 2006, sử dụng JSR 220.Năm 2019, JPA đổi tên thành Jakarta Persistence. Phiên bản mới nhất của JPA là 2.2. Nó hỗ trợ các tính năng sau:Java 8, API dữ liệu và thời gianCDI Injection trong AttributeConvertesTạo ra các annotation