このように、Long主キーを持つ基本クラスを定義します。
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
@Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
public class ModelBase implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
その他のpojoはModelBaseを拡張します。私がこのコードのようにjdoqlによってクエリされたとき
public List<PersonalSetting> getByIds(Long... Ids) {
Query query = getQuery();
query.setFilter("id ==:id");
return (List<PersonalSetting>) query.execute(Ids);
}
しかし、それは私に例外を与えるだけです。
java.lang.ClassCastException: [Ljava.lang.Long; cannot be cast to com.google.appengine.api.datastore.Key
Keyクラスに「Id」フィールドがあることがわかりましたが、「id.id ==:id」のようにアクセスできません。誰かがそれを修正する方法を教えてもらえますか?どうもありがとうございます!