0

私のGoogle App Engineアプリケーションでは、しばらくの間、以下のjdoを永続化しました。

package com.acti.JDO;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Key;

@PersistenceCapable
public class Subscription {

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key ;

public Key getKey() {
    return key;
}

public void setKey(Key key) {
    this.key = key;
}

@Persistent
private String email;

@Persistent
private String clientID;

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getClientID() {
    return clientID;
}

public void setClientID(String clientID) {
    this.clientID = clientID;
}
}

後で clientID を clientId に変更したかったのですが、

@Persistent
private String clientId;

public String getClientId() {
    return clientId;
}

public void setClientID(String clientId) {
    this.clientId = clientId;
}

それに応じて変更を加え、以前の jdo エンティティを削除し、新しい「clientId」キーで jdo の永続化を開始しました。データストアには clientId しか表示されませんが、サブスクリプション jdos を取得しているときに取得するキーは「ClientID」です

jdoエンティティを取得しようとしているコードは以下のとおりです

   public ArrayList<Subscription> getSubscriptionJDOs(String    queryParam)
   {
    ArrayList<Subscription> subscriptionJDOList = null;
    PersistenceManager          persistentManager  = null;
    Query                                   query  = null;

    try
    {
        subscriptionJDOList   = new ArrayList<Subscription>();  
        persistentManager     = JdoUtil.get().getPersistenceManager();
        query                 = persistentManager.newQuery(Subscription.class, queryParam);

        subscriptionJDOList.addAll((List<Subscription>) query.execute());
    }
    catch(Exception ex)
    {
        log.info("Subscription Exception while getting the the subscription JDOs ::"+ex.getMessage());
    }

return subscriptionJDOList;
}

しかし、私が取得しようとしている jdos には、clientId ではなくキー clientID があります。App Engine インスタンスを強制終了しようとして、もう一度試しました。まだ解決していません。誰もがなぜこれが起こっているのか知っています。

前もって感謝します!

4

0 に答える 0