Использование оператора $ in через Morphia - ошибаетесь?

У меня есть следующая сущность Play Framework (использующая Morphia для сохранения устойчивости) как часть общего приложения для ведения блога:

@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;
}

Метод getLastCommentsByUsers () должен возвращать все комментарии пользователей в параметре users , но я всегда получаю пустой список List . Причина того, что Commment является отдельной коллекцией, состоит в том, чтобы иметь возможность получить последние X Comment определенных пользователей через связанные с ними сообщения , что невозможно. если Комментарий встроен в коллекцию Post .

Что-то не так с моим запросом (следует ли использовать что-то другое, кроме hasAnyOf ), или это проблема с сопоставлением отношений - следует ли мне использовать вместо этого ObjectId ?

5
задан Rich 26 May 2011 в 22:13
поделиться