我实现MapStore
并配置了hazelcast(v 2.2),以便它知道在调用map.put()
它时必须.store
从我的实现中调用它,至少这是我读到的。
如果我直接使用我的实现,它会存储我想要的,但如果我调用map.put()
它不会。有人可以告诉我为什么不这样做或者我做错了什么吗?
这是我的MapStore
实现:
public class MyMapStore implements MapStore<String, Object> {
private Session session = HibernateUtil.openSession();
@Override
public Object load(String key) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> loadAll(Collection<String> keys) {
// TODO Auto-generated method stub
return null;
}
@Override
public Set<String> loadAllKeys() {
// TODO Auto-generated method stub
return null;
}
@Override
public void store(String key, Object value) {
Transaction tx = session.beginTransaction();
session.save((MyObject)value);
tx.commit();
}
@Override
public void storeAll(Map<String, Object> map) {
// TODO Auto-generated method stub
}
@Override
public void delete(String key) {
// TODO Auto-generated method stub
}
@Override
public void deleteAll(Collection<String> keys) {
// TODO Auto-generated method stub
}
}
Hazelcast 配置:
h.getConfig().getMapConfig("default").setMapStoreConfig(
new MapStoreConfig().setEnabled(true).setClassName(
MyMapStore.class.getName()).setWriteDelaySeconds(0));
打印 hazelcast 配置表明我设置的所有内容都在那里,所以我不知道出了什么问题。