1

ヘーゼルキャスト ベースのキャッシュ用にゼロ ボイラープレート マップ ストアを実装しようとしています (ここで説明されているように) が、データをマップに追加しても、データベースに保存されたデータを取得できません。

これは、hazelcast マップを定義する方法です。

<hz:map name="foo"
  <hz:map-store enabled="true"
                class-name="my.package.jpa.UserDataRepository"
                write-delay-seconds="1"/>
</hz:map>
...
<bean id="cacheManager" class="com.hazelcast.spring.cache.HazelcastCacheManager">
  <constructor-arg ref="user-provisioning-hazelcast"/>
</bean>
<bean id="userMappingCache" factory-bean="cacheManager" factory-method="getCache">
  <constructor-arg><value>foo</value></constructor-arg>
</bean>

マップは機能しているようです (少なくともメモリ内では)。

my.package.jpa.UserDataRepository で CRUD インターフェイスを定義する方法

@Repository
public interface UserDataRepository extends JpaRepository<UserData, Long>,
      JpaSpecificationExecutor<UserData> {}

そのインターフェース定義から作成された Beanのメソッドを使用するsaveと、オブジェクトのいずれかで、データがデータベースに保存されます (したがって、データベース接続、休止状態のプロパティ、エンティティ定義、および Bean 定義は問題ないようです)。

しかし、オブジェクトをマップに「配置」すると、hazelcast はそれらをデータベースに書き込むことはなく、文句を言うこともありません。map-store の定義が無視されているようです。

キーはJPAオブジェクトのidと同じです。

何が間違っているのか、またはデバッグ方法の手がかりをいただければ幸いです。

ヘーゼルキャスト2.6を使用。

4

1 に答える 1

0

hz:map 構成は hz:config の下にある必要があります。また、マップを外部で宣言する必要があります。

そうですか、確認していただけますか。

于 2013-07-31T09:10:59.077 に答える