Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并两个DB支持的实体的有效方法Hibernate_Hibernate_Jpa_Jpa 2.0 - Fatal编程技术网

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

合并两个DB支持的实体的有效方法Hibernate,hibernate,jpa,jpa-2.0,Hibernate,Jpa,Jpa 2.0,如果之前回答了相同的问题,请与我联系。以下是我问题的详细信息。 我在数据库中有一个ShoppingCart对象,其结构如下 ShoppingCart{ Set<ShoppingCartItem> lineItems } ShoppingCartItem{ Set<ShoppingCartAttributeItem> attributes } ShoppingCartAttributeItem{ // attributes } 购物车{ 设置行项目 } 购物

如果之前回答了相同的问题,请与我联系。以下是我问题的详细信息。 我在数据库中有一个ShoppingCart对象,其结构如下

ShoppingCart{

 Set<ShoppingCartItem> lineItems 

}

ShoppingCartItem{
Set<ShoppingCartAttributeItem> attributes 
}

ShoppingCartAttributeItem{
// attributes
}
购物车{
设置行项目
}
购物车{
设置属性
}
购物车{
//属性
}
以上所有实体都是Hibernate应用程序中的DB备份条目。我需要在给定条件下合并两个不同的
ShoppingCart
实例

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

    我可以从数据库中获取两个
    ShoppingCart

  • 获取与当前登录用户关联的购物车
  • 登录前获取与用户关联的
    ShoppingCart
  • 简而言之,我需要合并两个购物车的
    行项目
    。我不确定如何才能最好地做到这一点?
    是否有任何有效的方法来合并这些
    行项目
    ,或者我需要逐个创建它们

    考虑到购物车中预期的物品数量,我不会太担心效率。在循环中复制项目通常没有什么错

    虽然可能会产生某种形式的UPDATE语句来进行合并,但它可能会带来不必要的复杂性。(实际上,您无论如何都会添加进一步的逻辑,比如消除重复项…)