簡體   English   中英

休眠聯接獲取轉儲結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM