Tôi đã đọc rất nhiều bài đăng của mẫu kho lưu trữ nhưng có một vài vấn đề thực tế mà chúng dường như không giải quyết hoặc giải thích. Đây là những gì tôi hiểu về hai mẫu này:Mẫu đối tượng lưu trữ và truy vấn. Làm thế nào để thực hiện các truy vấn phức tạp
Kho lưu trữ và mẫu truy vấn bổ sung: Đối tượng truy vấn đại diện cho logic nghiệp vụ (WHERE clausules) và mẫu lưu trữ có đối tượng truy vấn (IPredicate) và trả về một chọn nơi dẫn
các kho không nên có logic kinh doanh: Tất cả các logic kinh doanh phải tiếp tục truy vấn các đối tượng
Hiện nay tôi có một lớp bao bọc từng đối tượng logic (mà hầu như luôn luôn là một đối tượng thực thể đơn lẻ) triển khai nhiều "Nhận" các phương thức thực hiện các truy vấn phức tạp nhất (join, groupBy, etc ...), đây không phải là một mô hình tốt vì các lớp có xu hướng phát triển rất nhiều vì mã boilerplate cho các truy vấn tương tự và các phương thức công khai của nó phụ thuộc vào ngữ cảnh mà lớp này sẽ được sử dụng, do đó, làm cho các lớp này không thể sử dụng được cho nhiều dự án phụ thuộc vào cùng một cơ sở dữ liệu, đó là mục tiêu chính của tôi cho việc tái cấu trúc dự án này.
Cách truy vấn phức tạp hơn một SELECT đơn lẻ được triển khai với hai mẫu này mà không làm rò rỉ logic nghiệp vụ vào kho lưu trữ?
Hoặc nếu logic nghiệp vụ này không phù hợp với kho lưu trữ hoặc đối tượng truy vấn thì logic này phù hợp ở đâu?
Cảm ơn
Cảm ơn, đây không phải là ngôn ngữ đầu tiên của tôi, tôi sẽ sửa câu hỏi – rafael