Я пытаюсь получить объект сразу после его сохранения. При отладке я вставляю сущность и проверяю сущности в облачной консоли Google, вижу, что она была создана.
Key key = datastore.put(fullEntity)
После этого я продолжаю получать сущность с
datastore.get(key)
, но ничего не возвращается. Как получить сохраненный объект в рамках одного запроса?
Я читал этот вопрос Отсутствующие объекты после добавления в Google Cloud DataStore , но я сохраняю только 1 объект, а не десятки тысяч, как в этом вопросе
Я использую Java 11 и Google DataStore (com.google.cloud.datastore. пакет) *
edit: добавлен код, каким был объект созданный
public Key create.... {
// creating the entity inside a method
Transaction txn = this.datastore.newTransaction();
this.datastore = DatastoreOptions.getDefaultInstance().getService();
Builder<IncompleteKey> builder = newBuilder(entitykey);
setLongOrNull(builder, "price", purchase.getPrice());
setTimestampOrNull(builder, "validFrom", of(purchase.getValidFrom()));
setStringOrNull(builder, "invoiceNumber", purchase.getInvoiceNumber());
setBooleanOrNull(builder, "paidByCard", purchase.getPaidByCard());
newPurchase = entityToObject(this.datastore.put(builder.build()));
if (newPurchase != null && purchase.getItems() != null && purchase.getItems().size() > 0) {
for (Item item : purchase.getItems()) {
newPurchase.getItems().add(this.itemDao.save(item, newPurchase));
}
}
txn.commit();
return newPurchase.getKey();
}
после этого я пытаюсь получить созданный объект
Key key = create(...);
Entity e = datastore.get(key)