LinkПрогулка в РИАК

Я начал работать над проектом RIAK через Spring Source. согласно их спецификациям, связывание между объектами, а затем переход по ссылкам очень просты.

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

MyPojo p1 = new MyPojo("o1", "m1");
MyPojo p2 = new MyPojo("o2", "m2");

riakManager.set(bucketName1, "k1", p1);
riakManager.set(bucketName2, "k2", p2);

riakManager.link(bucketName2, "k2", bucketName1, "k1", tagName);

System.out.println(riakManager.get(bucketName1, "k1"));
System.out.println(riakManager.linkWalk(bucketName1, "k1", "_"));

проблема в том, что после ссылки содержимое источника ("k1") удаляется, остается только ссылка. Это распечатка:

null
[MyPojo [str1=o2, str2=m2, number=200]]

есть идеи, почему операция ссылки удаляет значение из источника? если я попытаюсь установить значение источников (снова) после ссылки, ссылка будет удалена...

спасибо, лайк.


person o'mac    schedule 08.07.2012    source источник


Ответы (2)


Riak требует, чтобы ссылка и данные сохранялись в одной операции. Вы не можете обновить одно без другого (на данный момент).

Таким образом, каждый раз, когда вы устанавливаете ссылку, операция также должна записывать данные. Я не знаю, учитывает ли это адаптер Spring. Я видел несколько сообщений между разработчиками Riak и Spring по этому поводу, но не знаю, было ли что-то исправлено.

Но в любом случае я также склоняюсь к использованию родного Java-клиента Riak, а не Spring.

person jodyfanning    schedule 24.09.2012

решил отказаться от пружинного адаптера. кажется, что у него недостаточно хорошая поддержка. вместо этого используйте Java-клиент RIAK. кто-нибудь думает иначе?

person o'mac    schedule 20.08.2012