Несколько классов в JDO Query - PullRequest
0 голосов
/ 07 января 2010

В настоящее время я занимаюсь разработкой в ​​GAE, и мне нужно сделать запрос, используя JDO:

ВЫБРАТЬ table1.column1, table2.column2 ОТ таблицы1, таблицы2 ГДЕ 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 Ответ

1 голос
/ 07 января 2010

Возможно, ознакомьтесь с JDOQL . Вы не можете иметь несколько типов «кандидатов». Очевидно, что простой запрос JDOQL не может возвращать более 1 типа-кандидата, поскольку он не имеет смысла. Вы ожидаете, что объекты типа Оценка вернутся, так что это кандидат. Если Оценка и Проект связаны, то вы используете поля отношения в предложении where, а если не связаны, то используете переменную (также в документации).

Если вы хотите просто вернуть поле класса 1 и поле класса 2, укажите это в предложении результата. ВЫБЕРИТЕ this.field1, this.project.field2 ОТ mydomain.Assessment ГДЕ this.project.owner = "value"

...