JPA là gì?

Spring Boot JPAlà một bạn dạng ghi chi tiết của Java để thống trị dữ liệuquan hệtrong các ứng dụng Java. Nó đến phép bọn họ truy cập và tàng trữ dữ liệu giữa những object/class Java với database quan tiền hệ. JPA tuân theoObject-Relation Mapping(ORM). Nó là 1 trong những tập hợp các interface. Nó cũng hỗ trợ một APIEntityManagerruntime nhằm xử lý những câu query và giao dịch thanh toán trên các object dựa vào database. Nó sử dụng ngôn từ truy vấn phía đối tượng tự do nền tảng JPQL (Java Persistent Query Language).JPA bao gồm ba lĩnh vực:The Java Persistence APIObject-RelationalmetadataBản thân API, được định nghĩa trong persistence package.JPA ko phải là một trong framework. Nó định nghĩa một khái niệm rất có thể được triển khai bởi ngẫu nhiên framework nào.

Bạn đang xem: Spring data jpa là gì? tại sao chúng ta cần sử dụng nó?

Tại sao họ nên thực hiện JPA?

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

Tính năng JPA

Có những tính năng sau của JPA:Là một repository trẻ trung và tràn đầy năng lượng vàobject-mapping abstractiontùy chỉnh.Hỗ trợ chocross-store persistence. Có nghĩa là một entity có thể được lưu giữ trữ một trong những phần trong MySQL với Neo4j (Hệ thống thống trị cơ sở tài liệu đồ thị).Tự rượu cồn tạo các truy vấn từ bỏ ngay chủ yếu tên những phương thức truy tìm vấn.Các lớp nhờ vào tên miền hỗ trợ các nằm trong tính cơ bản.Hỗ trợ kiểm tra làm chủ minh bạch.Khả năng tích hòa hợp mã repository tùy chỉnh.Dễ dàng tích phù hợp với Spring Framework cùng với namespace tùy chỉnh.

Kiến trúc JPA

JPA là 1 nguồn nhằm lưu trữ các entity doanh nghiệp dưới dạng những entity quan tiền hệ. Nó chỉ ra biện pháp định nghĩa POJO là 1 trong những entity và cách cai quản các entity quan hệ.Hình sau thể hiện kiến trúc các cấp độ class của JPA, cùng những class cùng interface chủ chốt mà được tư tưởng trong packagejavax persistence. Kiến trúc JPA chứa các đơn vị sau đây:Persistence:là một class chứa những phương thức tĩnh để mang một instance EntityManagerFactory.EntityManagerFactory:là một class Factory của EntityManager. Nó tạo và làm chủ nhiều instance EntityManager.EntityManager:Nó là một giao diện. Nó kiểm soát điều hành các hoạt động liên tục trên những đối tượng. Nó vận động cho phiên bản Truy vấn.Entity:Các entity là các đối tượng người sử dụng lưu trữ dài lâu như một bạn dạng ghi vào database.Persistence Unit:định nghĩa một tập hợp toàn bộ các class entity. Trong một ứng dụng, các instance EntityManager cai quản nó. Tập hợp những class entity thay mặt cho dữ liệu được cất trong một kho dữ liệu duy nhất.EntityTransaction:có quan hệ 1:1 với những class EntityManager. Đối với mỗi EntityManager, các hoạt động được duy trì bởi class EntityTransaction.Query (Lệnh truy tìm vấn):là một interface được triển khai bởi từng nhà cung cấp JPA để có được những object quan tiền hệ thỏa mãn nhu cầu các tiêu chí.architecture

Mối dục tình class JPA

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

Triển khai JPA

JPA là 1 API mã nguồn mở. Có không ít nhà cung cấp doanh nghiệp không giống nhau như Eclipse, RedHat, Oracle, v.v. Cung cấp các sản phẩm mới bằng phương pháp thêm JPA vào vào sản phẩm. Có một trong những framework triển khai JPA thịnh hành nhưHibernate, EclipseLink, DataNucleus,v.v. Nó nói một cách khác là công cụObject-Relation Mapping(ORM).

Object-Relation Mapping (ORM)

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

Xem thêm: Phím “F”, “Gg”, “ Ff Là Gì? ? /Ff Là Gì Trong Lol Và Các Tựa Game Khác

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

Phiên bản JPA

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