PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Hibernate 'Inverse' trong tệp ánh xạ

Inverse chỉ quyết định thực thể nào trong mối quan hệ chịu trách nhiệm cập nhật cơ sở dữ liệu để phản ánh mối liên kết.

Giả sử một liên kết hai chiều. Có hai lớp trong mã A và B, A chứa một tập hợp B, B duy trì một tham chiếu đến A. Ở cấp cơ sở dữ liệu, chỉ có một khóa ngoại được cập nhật, bảng cho B chứa một cột cho khóa chính. của A.

Trong trường hợp này, giả sử chúng ta đặt nghịch đảo =true vào phía đã đặt. Điều này ngụ ý rằng việc chỉ thêm một thực thể vào tập hợp sẽ không kích hoạt cập nhật khóa ngoại. Vì khả năng cập nhật khóa ngoại thuộc về B. Vì vậy, việc thêm một đối tượng B vào tập hợp mà A duy trì là không đủ để cập nhật cột khóa ngoại. objectA.addToSetOfB (objectB) sẽ không ảnh hưởng đến khóa ngoại.

Chỉ khi B được cung cấp một tham chiếu đến A, khóa ngoại trong bảng cho B mới được cập nhật. Vì vậy, objectB.setA (objectA) chắc chắn sẽ cập nhật khóa ngoại và thực sự thiết lập mối quan hệ.

Tôi nghĩ rằng khái niệm tương tự cũng sẽ áp dụng cho nhiều mối quan hệ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PSQLException:ERROR:quan hệ TABLE_NAME không tồn tại

  2. cập nhật nhiều khóa postgres jsonb_set

  3. Với sqlalchemy cách liên kết động với công cụ cơ sở dữ liệu trên cơ sở mỗi yêu cầu

  4. Hàm PostgreSQL do người dùng định nghĩa trong phương ngữ ngủ đông ném ngoại lệ

  5. Chọn bản ghi giữa hai dấu thời gian