Fusayuki Minamoto
miki.****@nifty*****
2006年 3月 9日 (木) 20:15:57 JST
皆本です。 翻訳よりも、こういう内容の話の方がずーっと面白いです。 小林さんありがとう。 >「どちらか早いほう」を入れるより、 > >EntityManagerは、データベースがコミットするとき >(デフォルトでは、データベースはカレントスレッドの最後に >同期化されることを思い出してください)や、 >次のデータベースクエリを実行する前に必ずデータベースを同期化します。 > >の方が正確だと思うのですがいかがでしょう? > >「どちらか早いほう」を入れると、むしろ > >更新->クエリ->更新->コミット > >のとき、「クエリ」の時には同期し、 >後続の「コミット」の時には同期しない、 >とも読めてしまう気がするのですが・・・ >(考えすぎ?) Entity Managerがある時間の1点にいて、そこから処理の終わりを目指して SQLの処理を次々にしているとします。線路の上を終点目指して走っている 電車のようなものです。通過する駅はSQL文です。 そう考えると、 The entity manager always synchronizes the database when it commits, or before the next database query, whichever comes first. の部分は、Entity Managerが時間軸上で (1)コミットに出会う (2)DBクエリーに出会う、 の「どちらか早いほう」という意味だと思います。 だから、DBクエリーに出会ったら、それ以降は同期をしないという誤解 を受けないように訳せばよいと思います。 <<私の超訳>> EntityManagerは、通常はデータベースがコミットするときに同期します。 でも、それに先立ってDBクエリーが実行されるときはその前にも同期します。 Miki