Hibernate返回多个外部实体

时间:2013-06-22 00:31:08

标签: java hibernate jpa

我有以下实体:

  • 调查
  • 响应
  • ResponseQuestion
  • 问题

调查与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)

有谁可以解释我做错了什么?

1 个答案:

答案 0 :(得分:1)

使用distinct,它应该解决你的问题。

从Response r中选择 distinct r连接fetch r.responseQuestion rq join fetch rq.question其中r.survey.id =:survey_id