在子类中对象化 Ref

Objectify Ref in a subclass

我正在尝试通过引用获取列表。

我的 类 是这样的:

许可证:

@Entity
@Cache
@Index
public class License {
    @Id
    Long id;
    private String name;
    private String startDate;
    private String expDate;
    private int timeStamp;
    private int status;
    Ref<Daemon> daemon;
    private boolean inactive;
}

许可证国家条件:

@Index
@Subclass(index=true)
public class LicenseCountryCondition extends License{
    Ref<Country> country;
}

如果我想找到 LicenseCountryCondition 列表,该列表在 特定的守护进程 上工作,我会这样做:

Daemon dae=ofy().load().type(Daemon.class).filter("name", "example").first().now();  

    List<LicenseCountryCondition>test=ofy().load().type(LicenseCountryCondition.class).filter("daemon",dae).list();
                for(LicenseCountryCondition i:test){
                    System.out.println(i.getName());
                    System.out.println(i.getDaemon().getName());
                }

结果还不错

但是,当我尝试获取在特定国家/地区[=47=工作的LicenseCountryCondition列表时],它不起作用:

Country ctr=ofy().load().type(Country.class).filter("name", "France").first().now();
    List<LicenseCountryCondition> test=ofy().load().type(LicenseCountryCondition.class).filter("country",ctr).list();
        for(LicenseCountryCondition i:test){
            System.out.println(i.getName());
        }

我能得到这份名单吗? (我看到了this但不是同一个问题)

感谢您的关注。

确保您对法国的查询确实 returns 一个真实的国家(不为空)。

您所写的内容没有明显的错误,但是这里发生的事情太多,数据库状态太多未指定,以至于有人无法回答这个问题。最好的办法是将创建一些实体的测试用例放在一起(因此数据库状态是已知的),然后演示您认为应该成功但仍然失败的查询。