对象化序列查询

Objectify sequence query

我尝试有这样的代码:

    Query<Card> query = ofy().load().type(Card.class);

    UserData creator = ofy().load().type(UserData.class).id(creatorId).now();
    if (creator != null && UserType.USER.equals(creator.getUserType())) {
        query.filter("creator", creator);
    }
    if (orderColumnName != null) {
        query.order((ascending ? "" : "-") + orderColumnName);
    }
    query.offset(startRow).limit(limit);
    return query.list();

但它不过滤。 还有这个过滤器:

    UserData creator = ofy().load().type(UserData.class).id(creatorId).now();
    Query<Card> query = ofy().load().type(Card.class).filter("creator", creator);

知道为什么吗?

已编辑

我的classCard.java

@Entity
public class Card implements PersistableObject {

    @Id
    Long id;

    @Index
    Date createDate;

    ...

    @Index
    Ref<UserData> creator;

    ...

    public UserData getCreator() {
        if (creator != null) {
            return creator.get();
        }
        return null;
    }

    public void setCreator(UserData creator) {
        this.creator = Ref.create(creator);
    }
}

我的classUserData.java

@Entity
public class UserData implements PersistableObject {

    @Id
    Long id;

    Ref<EaistoAccount> eaistoAccount;

    UserType userType;

    public EaistoAccount getEaistoAccount() {
        if (eaistoAccount == null) {
            return null;
        }
        return eaistoAccount.get();
    }

    public void setEaistoAccount(EaistoAccount aistoAccount) {
        this.eaistoAccount = Ref.create(aistoAccount);
    }
}

它不起作用意味着我希望将过滤后的实体获取到相应的 UserData,但是当我将查询分成几个部分时它不会过滤,当我在一行中使用查询时它也会过滤。

我找到了解决方案:

Why aren't my queries working properly? All of Objectify's intermediate command objects are immutable. This will not work:

Query q = ofy().load().type(Foo.class); q.filter("bar", bar); List foos = q.list(); The filter command did nothing because you did not reassign q. You need this:

q = q.filter("bar", bar); Alternatively, chain the whole sequence in a single statement. Read more here.

https://code.google.com/p/objectify-appengine/wiki/FrequentlyAskedQuestions