[英]hibernate join fetch dump result
我是休眠的新手。 有人可以解释为什么第一个查询得到转储结果吗? 谢谢!
店铺实体
....
@OneToMany(mappedBy = "shop")
private Collection<Product> productCollection;
....
产品实体
....
@JoinColumn(name = "shopId", referencedColumnName = "id")
@ManyToOne
private Shop shop;
....
query1结果
from Shop s left join fetch s.productCollection
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop1 : product1 product2 product3 product4 product5 product6 product7 product8 product9 product10 product11
shop2 : product12
query2结果
from Product p right join fetch p.shop
product1 : shop1
product2 : shop1
product3 : shop1
product4 : shop1
product5 : shop1
product6 : shop1
product7 : shop1
product8 : shop1
product9 : shop1
product10 : shop1
product11 : shop1
product12 : shop2
ps。 如果您需要更多信息,请告诉我。
使用自然联接,而不是左外部联接。 发生这种情况是因为您在多个产品中都有shop1。 对于每种产品,它将尝试加入shop1。
编辑1:另一个JPA提供程序( hibernate )特定的解决方案是使用private Set<Product> productCollection;
而不是private Collection<Product> productCollection;
那将获得独特的结果。
希望它能工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.