首页 > 解决方案 > manyTomany 会出现性能问题吗?

问题描述

我有这样的代码

   public Serializable save(Product product) {
    product.getCategories().forEach(category -> category.getProducts().add(product));

    return super.save(product);
   }

Category 会有很多产品,hibernate 会全部加载吗?

如果是,如何在 dao 或实体级别解决此问题?

@Table//...
public class Product {//...
@Cascade(value = SAVE_UPDATE)
@ManyToMany(mappedBy = "products", fetch = FetchType.LAZY, targetEntity = Category.class)
private Set<Category> categories = new HashSet<>();

}

@Table//...
public class Category {//... 
@Cascade(value = SAVE_UPDATE)
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "productToCategory",
        joinColumns = {@JoinColumn(name = "categoryId")},
        inverseJoinColumns = {@JoinColumn(name = "productId")})
private Set<Product> products = new HashSet<>();
}

标签: javasqldatabasehibernateorm

解决方案


这是我的问题的答案:

邮政


推荐阅读