2013-12-23 110 views
0

如果问题已经提前回答,请链接我。这里是我的问题的详细信息。 我在数据库中的ShoppingCart对象具有以下结构合并两个DB支持实体的高效方法休眠

ShoppingCart{ 

Set<ShoppingCartItem> lineItems 

} 

ShoppingCartItem{ 
Set<ShoppingCartAttributeItem> attributes 
} 

ShoppingCartAttributeItem{ 
// attributes 
} 

以上所有实体都在我的休眠application.I DB支持的项目需要在给定的条件下

  1. 用户加入到合并的ShoppingCart 2个不同的实例一些产品到他的购物车。
  2. 添加产品后,用户决定登录到系统

在有些情况下,当用户已经一个ShoppingCart,所以他登录时刻到系统中。我需要将他的ShoppingCart与当前会话购物车合并。

我可以从DB

  1. 取两者ShoppingCart获取与登录的用户目前相关车。
  2. 抓取登录

前与用户相关ShoppingCart总之,我需要合并两个ShoppingCart.I的lineItems我不知道如何最好能做到这一点? 有什么有效的方法来合并这些lineItems或我需要一个一个地创建它们。

回答

0

鉴于购物车中预计会出现多件物品,我不会过多担心效率问题。在循环中复制项目通常没有任何问题。

虽然有可能提出某种形式的UPDATE语句来进行合并,但它可能只会带来不必要的复杂性。 (实际上,无论如何,你会添加更多的逻辑,如消除重复...)