Ngủ đông - Ánh xạ O / R
Cho đến nay, chúng ta đã thấy ánh xạ O / R rất cơ bản sử dụng hibernate, nhưng có ba chủ đề lập bản đồ quan trọng nhất mà chúng ta phải tìm hiểu chi tiết.
Đây là -
- Lập bản đồ các bộ sưu tập,
- Ánh xạ các liên kết giữa các lớp thực thể và
- Ánh xạ thành phần.
Ánh xạ bộ sưu tập
Nếu một thực thể hoặc lớp có tập hợp các giá trị cho một biến cụ thể, thì chúng ta có thể ánh xạ các giá trị đó bằng cách sử dụng bất kỳ giao diện tập hợp nào có sẵn trong java. Hibernate có thể tồn tại các trường hợp củajava.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.util.List, và bất kỳ array của các thực thể hoặc giá trị liên tục.
Sr.No. | Loại bộ sưu tập & Mô tả ánh xạ |
---|---|
1 | java.util.Set Điều này được ánh xạ với một phần tử <set> và được khởi tạo bằng java.util.HashSet |
2 | java.util.SortedSet Điều này được ánh xạ với một phần tử <set> và được khởi tạo bằng java.util.TreeSet. Cácsort thuộc tính có thể được đặt thành bộ so sánh hoặc thứ tự tự nhiên. |
3 | java.util.List Điều này được ánh xạ với một phần tử <list> và được khởi tạo bằng java.util.ArrayList |
4 | java.util.Collection Điều này được ánh xạ với một phần tử <bag> hoặc <ibag> và được khởi tạo bằng java.util.ArrayList |
5 | java.util.Map Điều này được ánh xạ với một phần tử <map> và được khởi tạo bằng java.util.HashMap |
6 | java.util.SortedMap Điều này được ánh xạ với một phần tử <map> và được khởi tạo bằng java.util.TreeMap. Cácsort thuộc tính có thể được đặt thành bộ so sánh hoặc thứ tự tự nhiên. |
Mảng được hỗ trợ bởi Hibernate với <primitive-array> cho các kiểu giá trị nguyên thủy Java và <array> cho mọi thứ khác. Tuy nhiên, chúng hiếm khi được sử dụng, vì vậy tôi sẽ không thảo luận về chúng trong hướng dẫn này.
Nếu bạn muốn ánh xạ giao diện bộ sưu tập do người dùng xác định, giao diện này không được Hibernate hỗ trợ trực tiếp, bạn cần nói với Hibernate về ngữ nghĩa của bộ sưu tập tùy chỉnh của bạn, điều này không dễ dàng và không được khuyến khích sử dụng.
Ánh xạ liên kết
Ánh xạ liên kết giữa các lớp thực thể và mối quan hệ giữa các bảng là linh hồn của ORM. Sau đây là bốn cách thể hiện mối quan hệ cơ bản giữa các đối tượng. Một ánh xạ liên kết có thể là một chiều cũng như hai chiều.
Sr.No. | Loại ánh xạ & Mô tả |
---|---|
1 | Nhiều-một Lập bản đồ mối quan hệ nhiều-một bằng Hibernate |
2 | Một-một Lập bản đồ mối quan hệ 1-1 bằng Hibernate |
3 | Một-nhiều Lập bản đồ mối quan hệ một-nhiều bằng Hibernate |
4 | Nhiều nhiều Lập bản đồ mối quan hệ nhiều-nhiều bằng Hibernate |
Ánh xạ thành phần
Rất có thể một lớp Thực thể có thể có một tham chiếu đến một lớp khác như một biến thành viên. Nếu lớp được giới thiệu không có vòng đời riêng của nó và hoàn toàn phụ thuộc vào vòng đời của lớp thực thể sở hữu, thì lớp được tham chiếu do đó được gọi làComponent class.
Ánh xạ Bộ sưu tập các thành phần cũng có thể thực hiện theo cách tương tự giống như ánh xạ các Bộ sưu tập thông thường với sự khác biệt nhỏ về cấu hình. Chúng ta sẽ xem chi tiết hai ánh xạ này với các ví dụ.
Sr.No. | Loại ánh xạ & Mô tả |
---|---|
1 | Ánh xạ thành phần Ánh xạ cho một lớp có tham chiếu đến một lớp khác như một biến thành viên. |