Транзакционные вставки ядра приложения Google в Java - PullRequest
0 голосов
/ 01 марта 2010

Я пытался вставить / обновить несколько объектов в одной транзакции, но безрезультатно.Всегда выдает IllegalArgumentException.

Я хотел сделать что-то вроде этого.

Transaction tx = pm.currentTransaction();
tx.begin();

for(int i=0;i<10;i++) {
    SampleEntity entity = new SampleEntity(i);
    pm.makePersistent(entity);
}

tx.commit();

Если это невозможно, есть ли обходной путь, чтобы это сработало?Спасибо.

1 Ответ

1 голос
/ 01 марта 2010

Документы по Транзакциям должны быть полезны здесь, особенно раздел по группам сущностей.

Группы объектов сообщают App Engine о необходимости хранения нескольких объектов в одном и том же узле хранилища данных - в противном случае транзакция потребовала бы тонны межузлового взаимодействия и было бы почти невозможно получить права.

Группы сущностей в основном используются для отношений родитель-потомок, поэтому дочерняя сущность может быть обновлена ​​в той же транзакции, что и родительская. * +1007 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...