如何在hibernate中只在OneToMany关系中添加一个实体

时间:2013-01-26 18:48:06

标签: java hibernate jpa

有两个表,其中一个是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中还有其他方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:1)

如果您使用双向映射以使Product具有Customer属性,则可以单独保存Product

private Customer Customer;

dao.Save(new Product(Customer, id, name, price));

这显然打破了你的聚合根......

答案 1 :(得分:0)

使用List或Bag代替。来自Hibernate docs

  

我们可以在不需要初始化的情况下将元素添加到包或列表中   (获取)包元素。