Có một lớp Offer
có tùy chọn mối quan hệ với lớp Article
. Vì vậy, một số tài sản bài viết cung cấp có giá trị null
.Hibernate/JPA: Cách buộc tham gia ngầm để sử dụng LEFT OUTER JOINS
Nếu tôi sử dụng câu lệnh sau, mọi thứ đều hoạt động tốt. Tôi nhận được tất cả các đề nghị, ngay cả những đề nghị không có bài viết.
SELECT o FROM Offer o
LEFT OUTER JOIN o.article a
LEFT OUTER JOIN o.vendor v
WHERE v.number = '0212' OR a.nummer = '123456'
Nếu tôi thay đổi tuyên bố:
SELECT o FROM Offer o
LEFT OUTER JOIN o.article a
LEFT OUTER JOIN o.vendor v
WHERE v.number = '0212' OR o.article.nummer = '123456'
tôi đã chỉ những Mời có điều khác biệt so với NULL
. Đó là bởi vì ký hiệu cho các kết nối ngầm định (o.article.nummer
) buộc một tham gia bên trong.
Có khả năng buộc các kết nối bên ngoài bên trái vào các kết nối ngầm định (chú thích hướng dẫn hoặc điều gì đó khác) không? Nếu có cơ hội tôi có thể sử dụng một dạng ngắn như thế này:
SELECT o FROM Offer o
WHERE v.number = '0212' OR o.article.nummer = '123456'
đối với tôi điều này không giải quyết được vấn đề! –
Tôi không biết điều này sẽ giải quyết vấn đề như thế nào.AFAIK Fetchmode chỉ xác định cách lấy dữ liệu để khởi tạo đối tượng trong bộ nhớ, chứ không phải cách thực hiện các phép nối trong một truy vấn. –