objectify是否具有get_or_insert等价物

时间:2016-04-18 14:39:12

标签: google-app-engine google-cloud-datastore objectify

数据存储区的python版本具有get_or_insert()方法。 Objectify会提供类似的东西吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,Objectify目前没有这样的功能。但是,您可以自己实现类似的功能。

public Something getOrInsert(Something s) {    
    return ofy().transact(new Work<Something>() {
        public Something run() {
            Something something = ofy().load().type(Something.class).id(s.getId()).now();
            if(something != null) {
                return something;
            }

            ofy().save().entity(s);

            return s;
        }
    });
}