2016-10-17 10 views
0

ネットワークを共有して複数のユーザが同じアプリケーションを使用しています。データベース。したがって、データベースを変更するときには、簡単にを更新する必要があります。私のMySqlデータベースの同期には、Javaアプリケーションの再起動が必要です

私はEclipseLink(デフォルトではキャッシュの設定)を使用しています。 実際には、2番目のユーザー(最初のユーザーが行った変更をキャッチしたい)は(Netbeansによって作成された)アプリケーションを再起動する必要があります。

UPDATE:

ここでは私ののpersistence.xmlで構成です。

enter image description here

答えて

2

はおそらくDBから取得しprevius値を保持しているあなたのapplicaltionでいくつかのキャッシュがある - ので、あなたが呼び出しているSQLをDBに行くのではなく、あなたのアプリケーションのローカルキャッシュから結果を返します。あなたの持続性の設定にしたがって、ドキュメントを見てキャッシュを無効にする方法 - おそらくORMレベルにあります。キャッシュを無効にする方法のEclipseLinkドキュメントから

:デフォルトのEclipseLinkことで

が繰り返さデータベースへのアクセスを避けるために、データベースから読み込まれたキャッシュオブジェクトへの共有オブジェクト・キャッシュを有効にします。データベースがJDBCまたは別のアプリケーションまたはサーバーによって直接変更された場合、共有キャッシュ内のオブジェクトは失効します。

Refreshing 
Invalidation 
Optimistic locking 
Cache coordination 

共有キャッシュも無効にすることができます。

のEclipseLinkはを含む古いデータに対処するためのいくつかのメカニズムを提供しています。これは、EclipseLinkの永続ユニットのプロパティを使用して行うことができます。

<property name="eclipselink.cache.shared.default" value="false"/> 

またはJPA 2.0永続性単位素子:

<shared-cache-mode>NONE</shared-cache-mode> 

または選択@Cacheアノテーションを使用して有効/無効にすることができます。

@Entity 
@Cache(isolation=ISOLATED) 
public class Employee { 
    ... 
} 

JPA 2.0 @Cacheable注釈:

@Entity 
@Cacheable(false) 
public class Employee { 
    ... 
} 

CacheTypeをNoneに設定してキャッシュを無効にしないでください。オブジェクトIDの問題が発生する可能性があります。

+0

友達、私はいくつかの更新を行った - >私のキャッシュが無効にされている –

+0

友人が使用している他のマシンのキャッシュも無効になっていますか? –

+0

両方のマシンにインストールされた実行可能ファイルです –

関連する問題