0

User オブジェクトが永続化される前に呼び出される @PrePersist メソッドを作成しました。メソッドの目的は、ユーザーのために一種の予約を行うことです。そのため、他の誰も彼の電子メール アドレスを取得することはできません。そのため、ユーザーが永続化されようとしているときに、「ユーザー #xyz の EmailReservation を作成してください」と言います。

私の問題は、ユーザーが以前に永続化されていないときに #xyz を取得することです。id は null ですが、ユーザーを表すエンティティが既に作成されているため、DatastoreService.allocateIds を使用できません。私はそのエンティティにアクセスできますが、getKey() は null ID のキーを返します。ID がどうなるかはまだ決定されていません。

したがって、次のいずれかが可能であることを願っています。

  1. 永続化されたときにエンティティが持つ ID を把握する
  2. 永続化する前に、既に作成されているエンティティに特定の ID を与えます。

何か案は?

4

1 に答える 1

1

永続化されたときにエンティティが持つ ID を知る方法はありません。これを行う唯一の方法は、allocateIds を使用することです。

User オブジェクトを作成して渡す前に ID を生成するか、エンティティがデータストアに書き込まれた後に作業を行う必要があります。

于 2011-09-26T03:24:25.637 に答える