[英]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.