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!
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. –
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
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! –