我有以下实体:
调查与Response有一对一的关联。 Response与ResponseQuestion有一对多关联,ResponseQuestion与Response之间存在多对一关联,与问题有多对一关联
我正在使用以下查询:
select r from Response r join fetch r.responseQuestion rq join fetch rq.question where r.survey.id = :survey_id
获取与调查相对应的回复。我期待外层有一个Response实体,它有一个包含5个ResponseQuestion实体的List。但是,我得到的是5个Response对象的列表,每个对象都有5个ResponseQuestion对象。
我不确定为什么我在外面得到5个对象,所有对象都指向内存中的同一个对象。响应表中只有一行。 ResponseQuestion表中的5行(全部映射到一个Response)
有谁可以解释我做错了什么?
答案 0 :(得分:1)
使用distinct,它应该解决你的问题。
从Response r中选择 distinct r连接fetch r.responseQuestion rq join fetch rq.question其中r.survey.id =:survey_id