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> {}

当我使用save从该接口定义创建的 bean 的方法时,在我的任何对象上,数据都会保存到数据库中(因此数据库连接、休眠属性、实体定义和 bean 定义似乎没问题)。

但是当我将对象“放入”地图时,hazelcast 从不将它们写入数据库并且它从不抱怨。地图商店的定义似乎被忽略了。

键与 JPA 对象的 id 相同。

任何可能出错或如何调试的线索将不胜感激。

使用榛树 2.6。

4

1 回答 1

0

hz:map 配置应该在 hz:config 下。你也应该在外面声明地图。

是吗,你能检查一下吗?

于 2013-07-31T09:10:59.077 回答