#java #google-app-engine #jdo
#java #google-app-engine #jdo
Вопрос:
У меня возникла интересная проблема, которая кажется очень простой, но мне не хватает понимания Google AppEngine. Не слишком уверен, можно ли сделать следующее или нет
В качестве примера, скажем, у меня есть объект модели
Person {
....
PersonStatus status;
}
PersonStatus — это перечисление, в котором указаны значения «ЖИВОЙ», «ИСТЕКШИЙ», «ПАРАЛИЗОВАННЫЙ», «TMP»…
У меня также есть список PersonStatus, и если статус person соответствует кому-либо в списке, то этот person должен быть возвращен (в основном простая функция содержит функцию)
Я пытался
query.setFilter(":p.contains(status.toString())");
где p — список строк
Это завершается ошибкой
Unsupported method <contains> while parsing expression: InvokeExpression{[ParameterExpression{p}].contains(InvokeExpression{[PrimaryExpression{status}].toString(<none>)})}
и
query.setFilter(":p.contains(status)");
где p — список PersonStatus, но это завершается ошибкой с сообщением, что PersonStatus (Enum) не является поддерживаемым типом данных.
Может кто-нибудь, пожалуйста, дать мне несколько предложений? Кажется очень простым, и я был бы удивлен, если AppEngine не поддерживает этот тип операций
Комментарии:
1. Не думайте, что JDOQL «Enum.toString» будет поддерживаться AppEngine, а «contains», безусловно, нет (как говорится в сообщении).
2. Итак, если бы мне пришлось сделать что-то подобное, о чем я упоминал в своем вопросе, есть ли какой-нибудь хакерский способ сделать это?