使用Spring Data的Hazelcast地图存储方法 - JPA默默地失败了

时间:2013-07-30 14:45:36

标签: spring hibernate jpa hazelcast

我正在尝试为基于hazelcast的缓存实现零样板地图存储(如here所述),但是当我将它们添加到我的地图时,我无法将任何数据保存到我的数据库中。

这是我定义淡褐色地图的方式:

<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方法时,在我的任何对象上,数据都会保存到数据库中(因此数据库连接,hibernate属性,实体定义和bean定义)似乎没事。)

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

密钥与JPA对象的id相同。

任何有关错误或如何调试的线索都将受到赞赏。

使用hazelcast 2.6。

1 个答案:

答案 0 :(得分:0)

hz:地图配置应该在hz:config下。你也应该在外面宣布地图。

是吗,你能检查一下吗?