2013-06-22 3 views
0

У меня есть следующие объекты:Hibernate возвращающих несколько Внешние Сущности

  • Survey
  • Response
  • ResponseQuestion
  • Вопрос

Survey имеет связь один-к-одному с ответом , Response имеет один ко многим ассоциации с ResponseQuestion, которая имеет связь многие-к-одному обратно в ответ, и многие к одной ассоциации к вопросу

Я использую следующий запрос:

select r from Response r join fetch r.responseQuestion rq join fetch rq.question where r.survey.id = :survey_id 

Получить ответ, соответствующий опросу. Я ожидаю одного объекта Response на внешнем слое, который имеет список из 5 объектов ResponseQuestion. Однако то, что я получаю, это список из 5 объектов Response, каждый из которых имеет 5 объектов ResponseQuestion.

Я не уверен, почему я получаю 5 объектов снаружи, все из которых указывают на один и тот же объект в памяти. В таблице ответов есть только 1 строка. 5 строк в таблице ResponseQuestion (все сопоставлены с одним ответом)

Может ли кто-нибудь объяснить, что я делаю неправильно?

ответ

1

использование отличное, оно должно решить вашу проблему.

выбрать отличие р от отклика г присоединиться выборки r.responseQuestion RQ присоединиться выборки rq.question где r.survey.id =: survey_id

+0

Простое решение. Не знаю, как я это пропустил. Спасибо! –