2010-01-07 6 views
0

Je développe actuellement GAE et je dois interroger comme ceci en utilisant JDO:Classe multiple dans JDO Query

SELECT table1.colonne1, table2.column2 DE table1, table2 OÙ table1.colonne1 = table2.column1;

J'ai essayé celui-ci, mais il ne fonctionnera pas:

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

Est-ce valide ou cela est vraiment pas encore pris en charge? Si cela est valide, pourquoi cela ne fonctionne-t-il pas alors? Si ce n'est pas le cas, que dois-je faire pour que cela fonctionne?

Merci!

Répondre

1

Peut-être vous familiariser avec JDOQL. Vous ne pouvez pas avoir plusieurs types "candidats". Une requête JDOQL simple ne peut pas renvoyer plus de 1 type de candidat, évidemment, car cela n'a aucun sens. Vous attendez des objets de type Evaluation en retour, c'est donc le candidat. Si Assessment et Project sont liés, vous utilisez les champs de relation dans la clause where, et s'ils ne sont pas liés, vous utilisez une variable (également dans les docs).

Si vous voulez simplement retourner un champ de classe 1 et un champ de classe 2, spécifiez-le dans la clause de résultat. SELECT this.field1, this.project.field2 FROM mydomain.Assessment O this this.projet.owner = "valeur"