4

Google App Engine でサーブレットに取り組んでいます。このサーブレットは、GAE のデータストアからデータを取得します。「SELECT * FROM...」のようにクエリを実行すると、すべてが正常に機能します。しかし、特定の列でフィルタリングしたい場合、列の名前にハイフンが含まれているため機能しません。次のようなものです。

Query query = new Query("tableName");
query.addFilter("col-name", Query.FilterOperator.EQUAL, filterValue);

ハイフンを使用して propertyName を渡すにはどうすればよいですか?

4

3 に答える 3

1

AppEngine データストアには行も列もありません。モデルとプロパティがあります。

データ クラスの定義では、モデルの定義について説明しています。注意すべき重要なことは、モデルの各プロパティは、ある時点で同じ名前の Java オブジェクトに変換されるため、識別子名の Java 規則が重要であるということです。

あなたはこれを自分で説明しました:

「field-1」という列でフィルタリングすると、field という列のすべての戻り値から 1 を減算しようとしていたようなものです

于 2009-12-30T21:27:20.330 に答える
1

Java は、ドル記号「$」、または正当な識別子のようなアンダースコア文字「_」の文字と数字のみを受け入れます。だから私はそれが不可能だと信じています。Pythonでも機能しませんでした

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/variables.html#naming

于 2009-12-28T20:42:32.813 に答える
0

addFilterメソッドは、列名を一重引用符で正しく囲んでいますか?自分で追加してみてください。GQLのデータベースのキーではないものでフィルタリングできるので、これはあなたに期待されていることかもしれません。

于 2009-12-30T02:16:35.683 に答える