Thứ Năm, 11 tháng 8, 2016

Hibernate One-to-One Relationship dùng DB SQL Server với cấu hình annotation – Mối quan hệ 1-1 giữa 02 đối tượng sử dụng Hibernate trên CSDL SQL Server với cấu hình annotation

Hibernate One-to-One Relationship – Mối quan hệ 1-1 giữa 02 đối tượng sử dụng Hibernate

Hibernate One-to-One Relationship dùng DB SQL Server với cấu hình annotation – Mối quan hệ 1-1 giữa 02 đối tượng sử dụng Hibernate trên CSDL SQL Server với cấu hình annotation

 

Mục đích: Mục đích của chủ đề này nhằm mở rộng chủ đề “Hibernate One-to-One Relationship dùng DB SQL Server”. Ở đây, chúng tôi sẽ thực hiện  cấu hình lại bài mối quan hệ 1-1 giữa 02 object cũng dùng Hibernate nhưng sử dụng DB SQL Server nhưng sử dụng annotation thay thế cho tập tin cấu hình xml để cho thấy sự đơn giản hơn khi chúng ta cài đặt Hibernate để tạo nhiều sự lựa chọn cho quí vị

Hibernate One-to-One Relationship dùng DB SQL Server với cấu hình annotation – Mối quan hệ 1-1 giữa 02 đối tượng sử dụng Hibernate trên CSDL SQL Server với cấu hình annotation

 

Mục đích: Mục đích của chủ đề này nhằm mở rộng chủ đề “Hibernate One-to-One Relationship dùng DB SQL Server”. Ở đây, chúng tôi sẽ thực hiện  cấu hình lại bài mối quan hệ 1-1 giữa 02 object cũng dùng Hibernate nhưng sử dụng DB SQL Server nhưng sử dụng annotation thay thế cho tập tin cấu hình xml để cho thấy sự đơn giản hơn khi chúng ta cài đặt Hibernate để tạo nhiều sự lựa chọn cho quí vị

 

Yêu cầu:

·         Nắm vững cách cài đặt đối tượng sử dụng Hibernate 3.2.5 (vui lòng xem lại bài Hibernate 3.2.5 in MVC Web Application with NetBeans 6.9.1 and SQL Server 2005 https://www.facebook.com/TrongKhanh.Kieu/posts/276067172765996)

·         Nắm vững cách cài đặt mối quan hệ 1-1 giữa 02 object sử dụng Hibernate trên 02 loại DB (vui lòng xem lại bài Hibernate One-to-One Relationship cài đặt trên MySQL và SQL Server https://www.facebook.com/TrongKhanh.Kieu/posts/276354746070572 https://www.facebook.com/TrongKhanh.Kieu/posts/276383166067730 )

·         Nắm vững kiến thức về OOP

·         Nắm vững kiến thức về mối quan hệ giữa các object khi vận dụng và cài đặt

·         Tools yêu cầu

o   NetBean IDE 6.9.1

o   JDK 6 update 22

o   Apache Tomcat v6.0.26

o   MS. SQL Server 2005

 

Trong phần nội dung này chúng tôi sẽ làm ví dụ trên mối quan hệ một client chỉ có địa chỉ address và một address chỉ có thuộc duy nhất một client (ví dụ này là bài ví dụ Hibernate One-to-One Relationship sử dụng DB SQL Server https://www.facebook.com/TrongKhanh.Kieu/posts/276383166067730 ). Để thuận lợi và nhanh chóng trong việc tiếp cận công nghệ, chúng ta thực hiện copy project để thao tác trên project mới hoàn toàn

·         Click chuột phải trên project HibernateOneOne, chọn Copy

·         Màn hình Copy Project xuất hiện

  • Chúng ta nhập lại tên Project trong mục Project Name là HibernateOneOneAnnotation và nhấn Copy, project được copy y như project cũ

  • Để tránh việc tham chiếu sai, chúng ta cần xóa bỏ một số đối tượng của project cũ được copy giống y chang trong project mới
    • Chúng ta mở tập tin hibernate.cfg.xml, chúng ta thấy nội dung tập tin mapping được khai báo ở đây

    • Để thực hiện mapping lại, đầu tiên chúng ta phải xóa 02 hàng nội dung trong khung đỏ, không thôi sẽ dẫn đến báo lỗi “Duplicated entity” vì bean được mapping hơn 02 lần sau khi chúng ta phát sinh cấu hình với annotation. Xóa đi để khi cấu hình lại không bị lỗi phát sinh. Tập tin sau khi xóa như sau

·         Thực hiện xóa các tập tin cấu hình liên quan trong package sample.oneone như

  • Chúng ta thấy project được cập nhật như sau:

Các bước hướng dẫn tiếp theo ở phần dưới sẽ áp dụng tương tự như bài Hibernate One-One relationship trên MySQL và SQL Server

Chúng ta thực hiện lại “Bước 2: Tạo Web Application Project tương tự như bài Hibernate One-One relationship kết hợp với SQL Server” mục Tạo Hibernate Mapping File và POJO trong cùng project nhưng mapping sử dụng annotation như hình bên dưới

·         Lưu ý: ngoài phải check vào JDK5 Language Features, chúng ta phải check thêm EJB 3 Annotations và gỡ check mục Hibernate XML Mapping đê không cần tạo tập tin mapping mà tất cả cấu hình lúc bây giờ chúng ta dùng annotation

·         Click Finish để hoàn tất

·         Project được bổ sung như sau

Chúng ta tiếp tục với “ Bước 3: Cấu hình quan hệ 1-1 tương tự như bài Hibernate One-One relationship kết hợp với SQL Server”

1.       Mở file TblClient.java trong package sample.annotation để chỉnh sửa

  • Lưu ý:
    • Màu đỏ được chỉnh sửa tương tự như trong cấu hình dùng xml vì tool hiểu là quan hệ nhiều nhiều.
    • Trong khi màu xanh thể hiện các nội dung cấu hình bằng annotation như EJB3 và thay thế tập các nội dung tương ứng trong tập tin cấu hình
    • Ngoài ra, chúng ta cần lưu ý nguyên lý đồng bộ của khóa chính và khóa ngoại chúng tôi đã nêu ra trong bài Hibernate One-One relationship kết hợp với SQL Server, nghĩa là chúng ta phải đồng bộ khóa ngoại từ bảng chính
    • Chúng ta thấy cấu hình trong @GenericGenerator, các giá trị thuộc tính khá giống nội dung cấu hình trong tập tin TblClient.hbm.xml mà chúng ta đã cấu hình trong bài Hibernate One-One relationship kết hợp với SQL Server
    • Giá trị name trong @GenericGenerator là giá trị chúng ta lấy ra @GeneratedValue(generator="customForeignGenerator"). Giá trị trong generator là giá trị chúng ta có thể tự đặt để mapping nội dung trong phần nêu trên
    • Nội dung object quan hệ phải đổi từ OneToMany trở thành OneToOne với cascase type all và xác định nó là khóa chính tương tự qua annotation @PrimaryKeyJoinColumn

2.       Chúng ta tiếp tục mở tập tin TblAddress.java trong package sample.annotation để chỉnh sửa như sau:

  • Chúng ta sửa lại ManyToOne trở thành OneToOne và bổ sung @PrimaryKeyJoinColumn

3.       Chúng ta mở lại tập tin ClientDAO.java trong package sample.oneone thấy báo lỗi, chúng ta thực hiện import để hoàn tất công việc

  • Sau khi import gói, chương trình sẽ hết báo lỗi.

4.       Chúng ta thực hiện clean and build, deploy, và test

  • DB trước khi insert

Các chức năng còn lại thực hiện đều tương tự và tốt như là cấu hình bằng tập tin xml nhưng chúng ta thấy có sự ngắn gọn và đơn giản nhưng để làm được điều này, chúng ta phải nắm chắc nguyên lý, khái niệm và cách cài đặt

Chúc mừng các bạn đã vừa hoàn thành xong bài Demo Hibernate One-to-One relationship với NetBean 6.9.1 sử dụng DB SQL Server 2005 và dùng annotation để cấu hình

Hẹn gặp lại ở các chủ đề  tương tự liên quan đến các loại quan hệ khác. Rất mong sự góp ý chân thành của quí vị

 

Không có nhận xét nào:

Đăng nhận xét