2010-11-25 20 views
1

私は、別のプロセスがDBを更新すると、Hibernate poweredアプリケーションが同期しないと仮定して正しいと思いますか?私はほとんど怠惰な更新を使用しています。アプリケーション外部のデータベース更新

私のターゲットDBは、違いがあれば、mysql 5.0です。

+0

「NHibernateで簡単なもの」というよりわかりやすいタイトルを使用してください。タグはそれがNHibernateのためのものであることを示していなければなりません。タイトルはトピックにヒントを表示して、類似の回答を探しているGoogle社員と、回答できる質問があることを知るために役立ちます。 – joshcomley

+0

私が書いた時、私の心には何も良いことはなかった。これがより適していることを願っています – Simone

答えて

1

これ以上の文脈がなければ簡単な答えはありません。

どのような種類のアプリケーション(ウェブ、デスクトップ、その他)について考えていますか?

正確に同期がとれていないと思いますか?

開いているセッションが開いていて、データが読み込まれているデスクトップアプリケーションがあり、他の場所で同じエンティティを変更すると、DBの同期が失われますが、更新を使用してそれらのエンティティを更新できます。

NH second-levelキャッシングを使用し、キャッシュされたエンティティを別の場所で変更すると、キャッシュの内容が同期しなくなりますが、リフレッシュまたはキャッシュ制御の方法を使用してDBから直接更新できます。

NHはバージョンプロパティを使用して楽観的同時実行性をサポートしています。同期外のエンティティへの変更を防止します。

+0

私は24時間365日実行されるアプリケーションを開発しています。私のPMは、いくつかのアプリケーションパラメータを再起動せずに変更できるようにしたいと考えています。ほとんどのパラメータはDBにあります。例えば、mysql CLIユーティリティを使用してDBを変更すると、NHibernateは更新を検出できません。私はちょうどそのことを確信したかった – Simone

+0

再び:どのようなタイプのアプリケーションですか? NHは自動的に他のデータアクセスライブラリよりも少なくても多くの変更を検出することはできません。必要に応じてDBを定期的にポーリングすると、更新されたデータが取得されます。 –

+0

申し訳ありませんが、それはデスクトップアプリケーション(または多分サービス)になります。 – Simone

1

はい、データセットとDataTableがフェッチし、別のプロセスが同じデータを更新すると同期しないのと同じ方法で、現在のセッションのオブジェクトが同期しなくなります。

関連する問題