Quan Hệ Nhiều Nhiều Trong Hibernate

Trong bài này mình sẽ hướng dẫn các bạn làm thế nào để tạo ra mối quan hệ nhiều nhiều trong Hibernate, sử dụng cấu hình Hibernate Annotations.

Ví dụ một sinh viên thì có thể đăng ký nhiều khóa học, một khóa học thì có thể có nhiều sinh viên. Để giải quyết trường hợp ví dụ ở trên chúng ta hãy đến với mối quan hệ nhiều nhiều trong Hibernate.

Sau đây là ví dụ mô ta chi tiết mối quan hệ nhiều nhiều trong Hibernate.

Class SinhVien.java

Mapping quan hệ nhiều nhiều trong Hibernate.

Class KhoaHoc.java

File hibernate.cfg.xml

Class tạo SessionFactory

Class test.java chạy ứng dụng console

Download source code bài viết bên dưới.

Download link Google Drive

Download link Vipshare

Download link Mshare

Nếu không sử dụng Hibernate thì khi gắp mối quan hệ nhiều nhiều chúng ta có thể tách ra một bảng trung gian. Hibernate ta chỉ cần dùng đúng jcu1 pháp thì sẽ tự động tạo ra bảng trung gian dưới cơ sở dữ liệu.

Ngoài ra các bạn có thể xem thêm loạt bài Hibernate cho người mới bắt đầu tại kenhlaptrinh.net.

Quan Hệ Nhiều Một Trong Hibernate

Quan Hệ Một Một Trong Hibernate

(Tác giả: Công Minh)

7 thoughts on “Quan Hệ Nhiều Nhiều Trong Hibernate

  1. bình thường thì Quan hệ n-n trong DB thì phải tạo ra bảng mới, bảng mới này có ID là (id bảng 1 + id bảng 2). vậy để tạo ID cho bảng trung gian này phải dùng anotation @EmbeddedId chứ nhỉ

    1. Chào bạn, với cách bạn CM vừa làm thì quan hệ n – n trong DB giữa bảng sinhvien và khoahoc sẽ sinh ra một bảng với là sinhvien_khoahoc chứa id của 2 bảng trên.

      1. ad ơi như ad nói á thì nếu dùng n-n trong hibernate rồi thì trong db mh k cần tách 2 bảng có quan hệ n-n ra 1 bảng khác phải k ạ?

          1. Đàm Văn Huấn

            - Edit

            à em hiểu rồi, mh chỉ cần có database thôi còn các table thì chưa cần tạo, khi mà mh chạy chương trình thì hibernate sẽ tự tạo cho mh các bảng tương ứng trong khai báo phải không ạ?

  2. vậy thì phải làm sao nếu bảng phụ sinhvien-khoahoc có nhiều thông tin hơn, ví dụ ngày sinh viên đăng kí khóa học hay điểm cuối khóa ? Thông thường việc này rất đơn giản vì table này tạo thủ công, còn khi nó tự động tạo thì làm sao can thiệp

Bình luận

Loading...