我正在尝试为基于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。
答案 0 :(得分:0)
hz:地图配置应该在hz:config下。你也应该在外面宣布地图。
是吗,你能检查一下吗?