Я новичок в движке приложений. Я хочу обновить некоторые поля своей сущности в хранилище данных. Для этого я создал query, как показано ниже, но он не обновляет мою сущность и не выдает ошибку. Я не знаю, где я ошибаюсь. Я сослался на this SO post, но у меня огромная коллекция данных. Поэтому для меня очень сложно получить сотни записей и сохранить их. Пожалуйста, помогите мне решить эту проблему.

Код:

@ApiMethod(name = "updateUserProfile", httpMethod = HttpMethod.GET, path = "userfeedmasterendpoint/updateProfile")
public void updateUserProfile(@Named("userName") String uName,
            @Named("uAbout") String userAbout) 
    {
       EntityManager mgr = null;
       try {
                mgr = getEntityManager();
                Query query = mgr
                        .createQuery("update UserFeedMaster u set u.userAbout = :uAbout where u.userName=:userName");
                query.setParameter("userName", uName);
                query.setParameter("uAbout", userAbout);
                query.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return;
       }
1
Zankhna 24 Мар 2014 в 16:34
Если вы так сохраняете, я бы посоветовал вам попробовать: github.com/mungo-appengine/mungo< /а>
 – 
quarks
24 Мар 2014 в 19:04

2 ответа

Лучший ответ

Запрос будет запрашивать у хранилища данных только набор объектов, удовлетворяющих критериям, и извлекать их. Чтобы обновить объект, вам необходимо получить его (например, запросом), обновить этот объект, а затем вернуть его в хранилище данных (вызвав ваш метод ORM put).

1
CaptainPatate 24 Мар 2014 в 16:48
Хорошо... так вы пытаетесь сказать, что я не могу выполнить запрос Update в хранилище данных?
 – 
Zankhna
24 Мар 2014 в 16:50
Есть ли другой способ сделать это?
 – 
Zankhna
24 Мар 2014 в 16:52
2
Кроме того, я думаю, что JDO/JPA не обязательно являются правильным инструментом для AppEngine, поскольку, как вы поняли, некоторые из их функций не поддерживаются на этой платформе. Objectify чувствует себя гораздо более естественно при работе с хранилищем данных...
 – 
CaptainPatate
24 Мар 2014 в 17:01
Согласитесь, JDO/JPA удерживают вас в «реляционном мире», вводя вас в заблуждение относительно концепций, которые на самом деле не применимы к хранилищу данных.
 – 
Michael Técourt
24 Мар 2014 в 20:08

Если вы новичок в AppEngine и хотите легко использовать хранилище данных, вам следует взглянуть на Objectify. Это Java ORM для хранилища данных. Вот краткое описание проекта:

Objectify - это API доступа к данным Java, специально разработанный для хранилища данных Google App Engine. Он занимает «золотую середину»; проще в использовании и прозрачнее, чем JDO или JPA, но значительно удобнее, чем API низкого уровня. Objectify призван сделать новичков продуктивными, но при этом раскрыть всю мощь хранилища данных GAE.

https://code.google.com/p/objectify-appengine/

0
user613353 25 Мар 2014 в 12:10