2017-06-19 6 views
1

多くの@OneToMany、@OneToOneなどの関係を持つ非常に大きくて複雑なHibernateエンティティのクローンを作成し、いくつかのプロパティを変更してクローンオブジェクトをデータベースに格納する必要があります。私はニーズが行われると信じて何クローン複合Hibernateエンティティ

は次のとおりです。

  1. デタッチオブジェクト
  2. DB
  3. から休止状態
  4. からオブジェクトを取得
  5. (自動生成もう一度する)すべての主キーと外部キーを削除します必要なプロパティを更新する
  6. 離脱したオブジェクトを保持する

これはもっとエレガントな方法で可能ですか?このアプローチは正しいですか? テーブルだけで50列を超えるので、上記のアプローチは、私の意見では、非常に非効率で、テストするのが難しいです...

ありがとう!

+0

役に立つかもしれない:https://stackoverflow.com/questions/42952330/how-to-make-a-copy -hibernate-collection-with-cascade-all-delete-orphan –

答えて

1

すべての5つのステップが正しいです。オブジェクトのクローン/コピーを作成するだけです。フィールドをコピーするにはapache BeanUtilsまたはspring BeanUtilsを使用できます。また、1つのエンティティタイプだけでなく、カスタムのutilクラスとアノテーションを作成し、このコピー/フィールドでアノテーションを無視することもできます。将来的には、 - ライト、フルコピー、コピーを置き換えてコピーなどのいくつかのコピー戦略を追加することができます。

関連する問題