我有以下实体:
调查
响应
回应问题
题
调查与响应具有一对一关联。
响应与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行。 ResponseQuestion表中的5行(全部映射到一个Response)
谁能解释我在做什么错?
最佳答案
使用不同,应该可以解决您的问题。
从Response中选择不同的r r join fetch r.responseQuestion rq join fetch rq.question其中r.survey.id =:survey_id