2012-04-02 15 views
0

このようにLong主キーを持つ基本クラスを定義します。GAE、JDO主キーをLong/long型で照会する方法

および他のpojoがModelBaseを拡張しています。私はこのコード

public List<PersonalSetting> getByIds(Long... Ids) { 
    Query query = getQuery(); 
    query.setFilter("id ==:id"); 
    return (List<PersonalSetting>) query.execute(Ids); 
} 

のようなJDOQLによってクエリだったが、それはちょうど私の例外を与える 。

java.lang.ClassCastException: [Ljava.lang.Long; cannot be cast to com.google.appengine.api.datastore.Key 

私はKeyクラスは、 "ID" フィールドを持っていたが、私は "id.id ==:ID" のようにアクセスすることはできません。 誰かにそれを修正する方法を教えてもらえますか?どうもありがとうございました!

+0

プライマリキーをString型に変更しようとしましたが、再び発生します。私の主なフィールドはStringですが、Keyにキャストすることはできないと言われています。なぜですか?どのようにしてメソッドが動作するのか、私はこの問題に夢中になるでしょう。 – Jump2cn

答えて

0

無効なJDOQL。明らかに、使用しているGoogles永続性プラグインのバージョンを指定してから、log/stacktrace()を使用すると、

+0

返信ありがとうございます。私はちょうど含まれているメソッドを試してみてください、それは仕事ではありません。私は同じ例外情報を持っています。彼らは1つのkind.Theバージョンのgae sdkのバージョンでは、私のプロジェクトでは1.6.4、 1.6.3.1に戻って、それは異種ではありません。 – Jump2cn

+0

は永続性プラグインのバージョンではなく、別名「datanucleus-appengine」です。彼らのプラグインで動作するものは1つです。私は単純に何をするべきかのJDO仕様を引用します。 – DataNucleus

+0

1.0.10.final、datanucleus-coreは1.1.5です。それらはすべて2つのsdkバージョンを含んでいます – Jump2cn

関連する問題