Could performance issue occure for manyTomany?

I have such code

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

return super.save(product);
}

Category will have many products, does hibernate load them all?

If yes, how to fix this issue on dao or entity level?

@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<>();
}