0

そこで、GAE のデータ ストアにユーザー アカウントを作成しています (Java を使用)...

Entity account = new Entity(DATASTORE_KIND, accountAncestorKey);  
Key accountKey = datastore.put(account);

エンティティが作成されました (最終的に)、すばらしい! オブジェクトの ID はいつ利用可能になりますか? getProperty("ID")オブジェクトを操作できるようになるまでに「少し」時間がかかる場合がありますか?

すぐに ID が必要な場合、自分用に 1 つの ID を手動で割り当てる必要がありますか?

私は自分でいくつかのコードテストを実行できるため、この質問をしていますが、IDがプットの直後に生成されるかどうかという問題を決定的に解決することはできません...そして私が読んだことから、私は頼るべきではないと思いますこれについて。

4

2 に答える 2

1

非常に高速(30〜50ミリ秒)であると思います。あなたの場合、エンティティを保存した直後にデータストアからエンティティを取得しようとしても、問題にはなりません。

log4j を使用して、タイミングを維持する時間を出力して、所要時間を理解することができます。

例、

情報: データストアを永続化する時間: 38 ミリ秒

# A default log4j configuration for log4j users.
#
# To use this configuration, deploy it into your application's WEB-INF/classes
# directory.  You are also encouraged to edit it as you like.

# Root logger option
log4j.rootLogger=INFO

# Configure the console as our one appender
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n

# tighten logging on the DataNucleus Categories
log4j.category.DataNucleus.JDO=WARN, A1
log4j.category.DataNucleus.Persistence=WARN, A1
log4j.category.DataNucleus.Cache=WARN, A1
log4j.category.DataNucleus.MetaData=WARN, A1
log4j.category.DataNucleus.General=WARN, A1
log4j.category.DataNucleus.Utility=WARN, A1
log4j.category.DataNucleus.Transaction=WARN, A1
log4j.category.DataNucleus.Datastore=WARN, A1
log4j.category.DataNucleus.ClassLoading=WARN, A1
log4j.category.DataNucleus.Plugin=WARN, A1
log4j.category.DataNucleus.ValueGeneration=WARN, A1
log4j.category.DataNucleus.Enhancer=WARN, A1
log4j.category.DataNucleus.SchemaTool=WARN, A1
于 2013-08-07T07:17:19.160 に答える