繁体   English   中英

对象化仅键查询?

[英]Objectify Keys-Only Query?

我想使用仅密钥查询来检查数据库中是否存在证书实体。 到目前为止,我正在做:

Iterable<Key<LikeMW>> liked = ofy().load().type(LikeMW.class).filter("likedObject", postKey).filter("user", userKey).keys();

post.setLiked(liked.iterator().hasNext());

所以我有两个问题:

1-如果在“ .keys()”之后使用“ .first()。now()”,它会从“仅键”切换还是仍然是“仅键”查询?

2-是否有更好的方法使用“仅键”查询和过滤器检查证书实体是否存在?

感谢大伙们!

更新

@Entity
public class LikeMW {

    @Id
    private Long id;

    @JsonIgnore
    @Index
    @Load
    private Ref<UserMW> user;

    @JsonIgnore
    @Index
    private Key likedObject;

    ...
}

还有可能是喜欢的对象之一...

@Entity
public class PostMW{

    @Id
    private Long id;

    @JsonIgnore
    @Load
    private Ref<UserMW> owner;

    @JsonIgnore
    @Load
    private Ref<MediaMW> media;

    ...
}

权威地查询实体是否存在的唯一方法是通过密钥加载它。 您当然可以进行仅键查询,但是最终将保持一致,并且不保证您不会创建重复项。

鉴于你正在尝试做的,你几乎肯定会好起来的养育LikeMW与用户和使用字符串化likedObject作为字符串ID。 这样,您可以进行高度一致的查找并使用事务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM