使用两个LEFT JOIN时重复的行

时间:2013-11-12 13:57:30

标签: sql hibernate jpa

我有简单的(H)SQL查询:

SELECT f 
FROM Factory f 
LEFT JOIN FETCH f.products p 
LEFT JOIN FETCH p.customers 
WHERE f.id = (:id)

但是结果包含多个重复的products对象..如何解决这个问题?

请注意:customersproducts是收藏品,即工厂与产品之间以及产品与客户之间存在一对多关联 。

1 个答案:

答案 0 :(得分:0)

这是我的建议。

  1. 将Factory中的Products属性定义为Set而不是List。
    • 工厂 - > SET<产品>
  2. 将Product中的Customers属性定义为Set而不是List。
    • 产品 - > SET<客户>
  3. 实施等于& Customer&的hashCode方法产品
  4. 这应该能够处理重复项。