2011-03-23 36 views
8

Tôi có Mô hình Activity sau đây với thuộc tính tùy thuộc vào ngôn ngữ Title. chủng loại, nhiều-to-one) và TranslationValue (one-to-many)Tham gia Tìm nạp: "truy vấn tìm nạp được chỉ định truy vấn, nhưng chủ sở hữu của liên kết được tìm nạp là

Nếu tôi viết HQL sau:.

from Activity act join fetch act.Title join fetch act.Title.TranslationValuesSet 

này hoạt động tốt cho đến nay Nhưng ngay sau khi tôi thêm hành động vào. câu lệnh chọn, tôi gặp vấn đề với sự tham gia của TranslationValuesSet:

select act from Activity act join fetch act.Title join fetch act.Title.TranslationValuesSet 

NHibernate.QueryException: Query specified join fetching, but the owner of the fetched association was not present in the select list [FromElement{explicit,not a collection join,fetch join,fetch non-lazy properties,classAlias=,role=Translation.TranslationValuesSet,tableName=TranslationValue,tableAlias=translatio3_,origin=Translation translatio2_,colums={translatio2_.TranslationId ,className=TranslationValue}}] [select act from Activity act join fetch act.Title join fetch act.Title.TranslationValuesSet

Tôi không thể hiểu tại sao Hibernate không như thế !?

Thx cho bất kỳ mã nào!

Trả lời

9

... chỉ ra rằng tôi cần xác định bí danh cho lần tham gia đầu tiên. Điều này thực hiện mẹo (thông báo bí danh title):

select act from Activity act join fetch act.Title title join fetch title.TranslationValuesSet 
+3

Và tại sao lại như vậy? Nó hoạt động cho tôi quá, sau khi có vấn đề sau khi nâng cấp phiên bản Hibernate. Họ có thay đổi gì không? Truy vấn tương tự chính xác được thực hiện đúng trong JBoss 4.2.2.GA nhưng không phải trong JBoss 6.0.0.Final. –

+0

Tuy nhiên, điều này sẽ không hoạt động nếu bạn cố gắng chọn kết hợp các trường và thực thể lồng nhau: ( – chrismarx

+0

Tôi gặp phải vấn đề tương tự khi nâng cấp từ Hibernate 3,3 lên Hibernate 3.6 và không có nơi nào trong hướng dẫn di chuyển chính thức có đã đề cập rằng hành vi của trình phân tích cú pháp truy vấn có thể đã thay đổi !! Hibernate cần thực hiện công việc tốt hơn với hướng dẫn di chuyển của chúng! –

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