有两个表,其中一个是Customer,另一个是Product,如您所知,Customer与产品有OneToMany关系,它显示在下面
在客户实体中,
private Set<Product> products;
如您所见,我使用Set
来实现OneToMany关系,但是当我想在将来只添加一个实体作为Product时,我必须获取所有这些产品并执行类似的操作,
Set<Product> products = customer.getProduct();
products.add(new Product(id, name, price));
dao.update(customer);
我认为,为了添加新实体,从数据库中获取所有产品的过程非常繁重,在hibernate中还有其他方法可以做到这一点吗?
答案 0 :(得分:1)
如果您使用双向映射以使Product具有Customer属性,则可以单独保存Product
private Customer Customer;
dao.Save(new Product(Customer, id, name, price));
这显然打破了你的聚合根......
答案 1 :(得分:0)
使用List或Bag代替。来自Hibernate docs:
我们可以在不需要初始化的情况下将元素添加到包或列表中 (获取)包元素。