查询子属性时我面临空结果。
我的子对象是一个自定义对象列表,如下所示:
家长
@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