2012-01-23 34 views
6

Tôi có một yêu cầu kinh doanh lẻ.Yêu cầu và nhắn tin thông qua nhiều loại đối tượng không liên quan với Hibernate

Chúng tôi có nhiều loại thực thể không liên quan cần được hiển thị trong danh sách hợp nhất, với một số thông tin cơ bản từ thực thể, được sắp xếp theo trường duy nhất mà tất cả đều được đảm bảo, DATE. Các thực thể này có thể hoặc thậm chí không có trong cùng một cơ sở dữ liệu. Tập kết quả cần phải có thể xem được.

Có cách nào khả thi để đạt được điều này thông qua Tiêu chí, HQL hoặc một số sane có nghĩa là không?

Trả lời

4

Thông thường bạn sẽ cho phép tất cả các lớp này mở rộng lớp cơ sở chung và sử dụng truy vấn Hibernate đa hình. Từ mô tả của bạn, điều này dường như không khả thi. Tất nhiên nếu bạn muốn đi theo cách Hibernate, trước tiên bạn phải tìm nạp kích thước của mỗi bảng không liên quan, xác định bảng nào trong các bản ghi trong trang được yêu cầu nói dối (hoặc có thể trong một vài bảng) và tìm nạp theo cách thủ công trang. Điều này thực sự rườm rà và chắc chắn nên được ẩn dưới một số DAO sâu.

Có vẻ như chỉ thực hiện giải pháp sane là SQL cũ tốt với UNION và ánh xạ truy vấn gốc tới đối tượng miền của bạn. Hibernate hỗ trợ các truy vấn gốc khá tốt.

+1

Đúng - sẽ không có lớp cơ sở chung. Đề xuất đầu tiên của bạn là cách duy nhất của Hibernate mà tôi đã nghĩ đến từ trước đến nay và nó trông không đẹp. Sự thiếu quyết đoán duy nhất của tôi trong việc lựa chọn một trong hai phương pháp đó là khả năng bảo trì trong việc thêm nhiều thực thể vào hỗn hợp sau này. – bvulaj

Các vấn đề liên quan