Ich möchte prüfen, ob Cert-Entität in der Datenbank mit nur-Schlüssel-Abfragen vorhanden sind. Bisher habe ich so mache:Objektify Keys-Only-Abfrage?
Iterable<Key<LikeMW>> liked = ofy().load().type(LikeMW.class).filter("likedObject", postKey).filter("user", userKey).keys();
post.setLiked(liked.iterator().hasNext());
So habe ich 2 Fragen:
1 - Wenn ich ".First() now()" nach ".keys()", tut es Wechsel von "keys-only" oder es wird immer noch eine "keys-only" Abfrage sein?
2 - Gibt es eine bessere Möglichkeit, zu überprüfen, ob Cert-Entitäten mit "keys-only" -Abfragen existieren und filtern?
Danke Jungs!
AKTUALISIERUNG
@Entity
public class LikeMW {
@Id
private Long id;
@JsonIgnore
@Index
@Load
private Ref<UserMW> user;
@JsonIgnore
@Index
private Key likedObject;
...
}
Und eine der möglichen mochte Objekte ...
@Entity
public class PostMW{
@Id
private Long id;
@JsonIgnore
@Load
private Ref<UserMW> owner;
@JsonIgnore
@Load
private Ref<MediaMW> media;
...
}
Ihre zweite Frage ist schwer zu beantworten, ohne Ihre Entitäten zu kennen. Sie könnten eine Entität erstellen, die ein festes Schema wie likedObjectId_userId als @Id verwendet. Sie könnten dann direkt auf die Entity mit ihrem Schlüssel zugreifen und würden nur einen einzigen Index lesen müssen. Das funktioniert jedoch nicht, wenn Ihre Entität mehr als diese beiden Eigenschaften enthält. – konqi
Aktualisierung mit Entitäten. –