Как обновить объект хранилища данных с помощью GWT

Я создаю игру, используя веб-инструментарий Google. Моя попытка состоит в том, чтобы обновить счет игрока после того, как он выиграет. Счет и информация об игроке помещаются в хранилище данных. Я смог обновить счет только один раз, и если игрок выиграет более одного раза счет не обновляется. Вот код:

@Override
  public User updateScore(int newScore,String username) {


    User user = ofy().load().type(User.class).id(username).get();
            user.setScore(newScore);
            ofy().save().entity(user).now();            
                return user;

    )   
  any idea???

person user3008437    schedule 14.02.2014    source источник


Ответы (2)


Вам нужно использовать транзакцию. Прочитайте это:

https://code.google.com/p/objectify-appengine/wiki/Concepts?tm=6#Transactions

Хотя это может повлиять или не повлиять на ваш последующий запрос, вы также должны знать о возможной согласованности в хранилище данных:

https://developers.google.com/appengine/docs/java/datastore/structuring_for_strong_consistency

person stickfigure    schedule 14.02.2014

Транзакция, как предложено, также проверьте файл web.xml, если он имеет ObjectifyFilter!

<filter>
  <filter-name>ObjectifyFilter</filter-name>
  <filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>ObjectifyFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
person MatejC    schedule 18.02.2014
comment
Спасибо за ответ. Мне удалось решить эту проблему, но я застрял в другой: (stackoverflow .com/questions/21822536/). Если у вас есть представление об этом и вы можете ответить, что это было бы здорово. - person user3008437; 18.02.2014
comment
Пожалуйста, оставьте информацию, что было не так! Добавьте ответ или/и отметьте правильный! Также просто для информации, вы проверили свой файл web.xml, если он имеет ObjectifyFilter? - person MatejC; 19.02.2014