合并两个DB支持的实体Hibernate的有效方法

时间:2013-12-23 17:49:14

标签: hibernate jpa jpa-2.0

如果之前已经回答过相同的问题,请链接我。这是我的问题的详细信息。 我在数据库中有一个具有以下结构的ShoppingCart对象

ShoppingCart{

 Set<ShoppingCartItem> lineItems 

}

ShoppingCartItem{
Set<ShoppingCartAttributeItem> attributes 
}

ShoppingCartAttributeItem{
// attributes
}

以上所有实体都是我的Hibernate应用程序中的DB支持条目。我需要在给定条件下合并ShoppingCart的两个不同实例

  1. 用户在购物车中添加了一些产品。
  2. 添加产品后,用户决定登录系统
  3. 有些用户已经有ShoppingCart的情况,所以当他登录系统时。我需要将他的ShoppingCart与当前会话购物车合并。

    我可以从数据库中获取ShoppingCart

    1. 获取与当前登录用户关联的购物车。
    2. 在登录前获取与用户相关联的ShoppingCart
    3. 简而言之,我需要合并两个ShoppingCart的lineItems。我不知道我能做到最好吗? 是否有任何有效的方法来合并lineItems或我需要逐个创建它们。

1 个答案:

答案 0 :(得分:0)

考虑到购物车中的物品数量不足,我不会过分担心效率问题。在循环中复制项目通常没有任何问题。

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