je Play entité cadre suivante (en utilisant Morphia de persistance) dans le cadre d'une application de blogging générique:
@Entity
public class Comment extends Model {
...
@Reference
@Indexed
public SiteUser commenter;
public static List<Comment> getLastCommentsByUsers(final List<SiteUser> users) {
final Query<Comment> query ds().createQuery(Comment.class);
query.field(commenter).hasAnyOf(users);
return query.asList();
}
}
Siteuser:
@Entity(noClassnameStored=true)
public class SiteUser extends AbstractUser {
public String realName;
}
AbstractUser:
public class AbstractUser extends Model {
@Indexed(value= IndexDirection.DESC, unique = true)
public String emailAddress;
@Required
public String password;
}
La méthode getLastCommentsByUsers()
est censé retourner tous les commentaires des utilisateurs dans le paramètre users
, mais je reçois toujours un 01 videretour. La raison pour laquelle Commment
est une collection séparée est de pouvoir récupérer les derniers X Comment
s par certains utilisateurs à travers leurs Post
s associés, ce qui n'est pas possible si le Comment
est incorporé dans la collection Post
.
Y at-il un problème avec ma requête (devrais-je utiliser autre chose que hasAnyOf
), ou est-ce un problème avec le mappage de relation - dois-je utiliser ObjectId
à la place?
S'il vous plaît poster ce que votre classe Siteuser ressemble. – Ryan
@Ryan: terminé. :) – Rich