JDO查询中的多个类

时间:2010-01-07 10:24:38

标签: java google-app-engine jdo

我目前正在使用GAE进行开发,我必须使用JDO进行查询:

  

SELECT table1.column1,table2.column2   FROM table1,table2 WHERE   table1.column1 = table2.column1;

我试过这个,但它不起作用:

    String query = "select from "+Assessment.class.getName()+ "a, "+ 
                        Project.class.getName()+" p where a.projectId == p.id && p.owner=='"+owner+"'";

这有效还是真的不支持? 如果这是有效的,为什么它不起作用呢? 如果不是,我该怎么做才能使这项工作?

谢谢!

1 个答案:

答案 0 :(得分:1)

也许熟悉JDOQL。您不能拥有多个“候选”类型。显然,一个简单的JDOQL查询不能返回多于1个候选类型,因为它没有任何意义。您期望返回类型为Assessment的对象,因此这是候选对象。如果评估和项目是相关的,那么你使用where子句中的关系字段,如果不相关,那么你使用一个变量(也在文档中)。

如果您只想返回类1的字段和类2的字段,请在结果子句中指定它。 选择this.field1,this.project.field2 FROM mydomain.Assessment WHERE this.project.owner =“value”