0

查询子属性时我面临空​​结果。

我的子对象是一个自定义对象列表,如下所示:

家长

@PersistenceCapable
@Inheritance(customStrategy = "complete-table")
public class TimesheetRecordDaily{
...
    @Persistent(embeddedElement = "true", serialized = "true", defaultFetchGroup="true") 
    @Element(embedded="true") 
    private List<TimesheetRecordDailyDetailDTO> timesheetRecordDailyDetails;
...
}

孩子

@PersistenceCapable
@EmbeddedOnly
public class TimesheetRecordDailyDetailDTO{
...
    @Persistent
    private String projectName;
...
}

询问:

Query query = pm.newQuery(TimesheetRecordDaily.class);
query.setFilter("this.timesheetRecordDailyDetails.contains(prd) && prd.projectName == 'MyProject'");            
query.declareVariables(TimesheetRecordDailyDetailDTO.class.getName() + " prd"); 
List results = (List)query.execute();

如果我如下更改查询过滤器(没有查询子属性值,则返回结果

query.setFilter("this.timesheetRecordDailyDetails.contains(prd)");

有什么帮助吗?这是 JDO 在 GAE 中运行以查询子属性值的问题吗?

注意:我使用的 GAE 版本是 1.8.2

4

1 回答 1

1

我认为这是不可能的,因为我刚刚发现,GAE 文档中指出,在查询父项时,我们不能在过滤器中使用子实体

参考:https ://developers.google.com/appengine/docs/java/datastore/jdo/overview-dn2

于 2013-07-21T12:27:49.907 回答