0

顧客から送信された注文を表すエンティティがあります。この注文は、電話で顧客と話し合った後に更新される可能性がありますが、顧客から送信された最初の注文は更新せずに保持する必要があります。どうすれば同じエンティティを 2 回永続化できますか。ディープ クローニングを使用するのは効率的ですか。永続化コンテキストが新しいものを永続化するためにエンティティを切り離そうとしましたが、それでも永続化コンテキストは最初のエントリを更新しています。

4

3 に答える 3

2

1 つのセッションで 1 つのオブジェクトを 2 回永続化することはできないため、注文をコピーして再度保存 (永続化) する必要があります。 新しく生成された ID を使用してオブジェクトの値を新しいオブジェクトに休止状態でコピーする

于 2013-06-19T17:30:15.073 に答える
0

オブジェクトを複製/コピーする必要があります。一意の ID (または生成された場合は null) があることを確認してください。

EclipseLink には、オブジェクトをコピーするための API があります。

http://wiki.eclipse.org/EclipseLink/Examples/JPA/AttributeGroup#Copy_Examples

于 2013-06-20T14:14:00.033 に答える
0

それは興味深い質問です。最も簡単な解決策は、おそらくマルチパート ID を使用することだと思います。最初の部分は元の注文番号で、変更ごとにキーの 2 番目の部分が増加します。あなたのコードでは、オブジェクトを見つけて、それが切り離されていることを確認し、キーの 2 番目の部分を変更してから永続化するだけで済みます。切り離されている限り、新しい注文として保存する必要があります。

この投稿では、複合キーの使用方法を示します。

于 2013-06-19T16:57:08.200 に答える