2016-12-19 7 views
0

Я пытаюсь сопоставить поле, которое не является ключом к удаленной кареляции, цель состоит в том, чтобы создать много удаленных экземпляров и использовать его для хранения сериализованных объектов.Проблема с полем индексации из каретки с использованием предиката

, что я заметил, что если я делаю как ставить и SQL в том же периоде, возвратных работ, следующим образом:

мой класс

public class Provider implements Serializable { 

private String resourceId; 
private String first; 

public String getResourceId() { 
    return resourceId; 
} 

public void setResourceId(String resourceId) { 
    this.resourceId = resourceId; 
} 

public String getFirst() { 
    return first; 
} 

public void setFirst(String first) { 
    this.first = first; 
} 

} 

код:

/*********** map initlization ************/ 
    Config config = new Config(); 
    config.getNetworkConfig().setPublicAddress(host + ":" + port); 

    instance = Hazelcast.newHazelcastInstance(config); 
    map = instance.getMap("providerWithIndex"); 

    String first = "XXXX" 
    /***** adding item ***************/ 
    Provider provider = new Provider(); 
    provider.setResourceId("11111"); 
    provider.setFirst(first); 
    map.put(provider); 
    /********** getting items ************/ 
    EntryObject e = new PredicateBuilder().getEntryObject(); 
    Predicate predicate = e.get("first").equal(first) ; 
    Collection<Provider> providers = map.values(predicate); 

как только я запускаю оба put и получаю в разных прогонах, результат равен 0 - поэтому к одному и тому же коду я не получаю ответа.

Моя единственная мысль состоит в том, что она только локальная выборка и не удаленная. но я надеюсь, что у меня есть ошибка где-то.

ответ

0

Ваш код выглядит хорошо, за исключением того факта, что вы не можете сделать map.put(provider), вам нужно передать ключ, так как map.put(someKey, provider); Запрос выглядит & отлично работает.