[Seasar-user:20031] Re: [Kuina-Dao]SQLの実行の同期について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2010年 7月 30日 (金) 10:00:00 JST
小林 (koichik) です.
Date: Fri, 30 Jul 2010 09:26:24 +0900
From: Inamine Morihiko <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:20030] Re: [Kuina-Dao]SQLの実行の同期について
> ・Flexからの一度のHTTP通信で1トランザクションと考えてます
> 一つのトランザクションの中でJPAで情報を変更
> (INSERT、UPDATE、DELETE等)して、その後、
> 同一トランザクションでSQLを使用し、
> 変更した情報も含め検索し、
> さらに情報の更新
> といった処理は出来ないのでしょうか?
いいえ,できます.
Kuina-Dao は EntityManager のローカル
トランザクションではなく,JTA による
グローバルトランザクションを使います.
そのため,EntityManager 経由の操作も
JDBC を直接利用した操作も同一の
トランザクションとなります.
また,Kuina-Dao の SQL による問い合わせの
実行前には JPA の永続コンテキストを flush()
(同期化) するので,JPA によって更新した情報も
SQL での問い合わせ結果に含まれます.
> > > 書籍(Seasar2とHibernateで学ぶデータベースアクセスJPA入門)では
> > > SQLの利用 P.238
> > > ・データベースの同期化を気にする必要は有りません
> この場合、Kuina-DaoのSQL機能の中で同期化(commit)は
> 必要ないと言う認識で正しいのでしょうか?
そこでの「同期化」はコミットのことではありません.
該当ページのもう少し (10〜20 ページくらい?) 前に
永続コンテキストの同期化のことが書いてあったと
思うので,探して読んでみてください.
キーワードは「永続コンテキスト」です.
永続コンテキストを制するものは JPA を制す.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内