2015-05-14 54 views
0

我有這個類:多態性與客體5

@Entity(name = "Post") 
public abstract class PostRecord { 

    @Id 
    private Long id; 
    private String field1; 
} 

@Subclass(name = "Bulletin") 
public class BulletinRecord extends PostRecord { 

    private String field2; 
} 

@Subclass(name = "Session") 
public class SessionRecord extends PostRecord { 

    private String field3; 
} 

我怎麼做才能取回所有公告或所有會話?

此代碼下面,做工精細,並返回一個文章列表的所有公告和會議:

ofy().load().type(PostRecord.class).list(); 

,但我想只是公告或只是會話,當我下面嘗試這個代碼,我得到一個空列表:

ofy().load().type(BulletinRecord.class).list(); 
ofy().load().type(SessionRecord.class).list(); 

回答

2

您需要爲子類鑑別符編制索引。

@Subclass(name = "Bulletin", index = true) 
public class BulletinRecord extends PostRecord { 
} 

GAE中的所有過濾(如子類過濾)都需要一個索引;指標有成本; Objectify要求你選擇這個成本。