Đây là một câu hỏi hay.
Bằng cách phơi bày các lớp thực thể JPA với phần còn lại của hệ thống, bạn phơi bày cơ chế và đối tượng bền vững với ánh xạ db. Bạn sẽ mất quyền kiểm soát đối tượng được CRUD và quản lý như thế nào. Bằng cách phá vỡ sự đóng gói bền bỉ, một sự thay đổi có thể có hiệu ứng gợn sóng trên phần còn lại của hệ thống.
Những thay đổi trong tương lai đối với sự kiên trì của hệ thống có thể là không thể, khó xử, giới hạn và/hoặc rủi ro. Ví dụ: bạn có thể cần phải tối ưu hóa cho hiệu suất và/hoặc khả năng mở rộng. Điều này có thể yêu cầu bộ nhớ đệm, thay đổi lược đồ db, sử dụng không RDBMS, nhiều cơ sở dữ liệu. Việc đóng gói cũng giúp giảm thiểu việc di chuyển sang các lược đồ db trong tương lai.
Vì vậy, thương mại giảm giá là:
- quản lý và duy trì một lớp kiên trì ứng dụng trên đầu trang của JPA mà gói gọn bền bỉ. tức là một giao diện.HOẶC
- quyết định sử dụng JPA trên bảng trong kiến trúc của bạn. Chấp nhận thực tế là những thay đổi trong tương lai có thể có hiệu ứng hệ thống rộng.
Tùy chọn đầu tiên có thể cần thiết nếu thay đổi hệ thống thường xuyên không được chấp nhận - ví dụ: Các bên thứ ba đang truy cập dữ liệu của bạn. Hoặc có lẽ bạn đã quyết định về kiến trúc 3 lớp: GUI, logic nghiệp vụ, kiên trì.
Tùy chọn thứ hai là ok nếu bạn có quy trình phát triển nhanh và có quyền kiểm soát toàn bộ hệ thống và chấp nhận thực tế là thay đổi hệ thống có thể cần thiết.
Ghi nhận bạn với câu trả lời vì bạn đã liên kết với tài liệu thú vị về mô hình phản đối. – Tazzy531