克隆复杂的Hibernate实体

时间:2017-06-19 08:30:02

标签: java hibernate

我需要使用许多@OneToMany,@ OneToOne等关系克隆非常大且复杂的Hibernate实体,更改一些属性并将克隆的对象存储到数据库中。

我认为需要做的是:

  1. 从DB
  2. 获取对象
  3. 从休眠中分离对象
  4. 删除所有主键和外键(再次自动生成)
  5. 更新所需的属性
  6. 坚持分离的对象
  7. 这可能以更优雅的方式做到这一点吗?这种方法是否正确? 单独的表有50多个列,所以上面提到的方法在我看来非常低效,难以测试等...

    谢谢!

1 个答案:

答案 0 :(得分:2)

所有5个步骤都是正确的。你只需要创建一个对象的克隆/副本。要复制字段,您可以使用apache BeanUtilsspring BeanUtils。此外,如果您不仅复制一种实体类型,还可以创建自定义util类和注释,并在字段中使用此复制/忽略注释。为了将来,您可以添加一些复制策略,如 - lite,完整副本,带替换的复制....