gpt4 book ai didi

java - hibernate join 获取转储结果

转载 作者:行者123 更新时间:2023-12-02 02:50:14 25 4
gpt4 key购买 nike

我是 hibernate 新手。有人可以解释为什么第一个查询得到转储结果吗?谢谢!

商店实体

....
@OneToMany(mappedBy = "shop")
private Collection<Product> productCollection;
....

产品实体

....
@JoinColumn(name = "shopId", referencedColumnName = "id")
@ManyToOne
private Shop shop;
....

查询1结果

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

查询2结果

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;这将获取独特的结果。

希望它能起作用。

关于java - hibernate join 获取转储结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43966574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com