Create-or-Err with Objectify

ⅰ亾dé卋堺 提交于 2019-12-01 12:48:15

This should guarantee consistent behavior:

final String id = // pick the unique id
final long txnId = // pick a uuid, timestamp, or even just a random number

ofy().transact(new VoidWork() {
    public void vrun() {
        Thing th = ofy().load().type(thing.class).id(id).now();
        if (th != null) {
            if (th.getTxnId() == txnId)
                return;
            else
                throw ThingAlreadyExistsException();
        }

        th = createThing(id, txnId);
        ofy().save().entity(th);
    }
});
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!