0

次のようなAdUserというオブジェクトがあります。

@PersistenceCapable
public class AdUser{

@Persistent
protected final int _id;

@Persistent
protected String _firstName, _lastName;

@Persistent
protected double _bankRoll;

@Persistent(serialized = "true", embeddedElement = "true", defaultFetchGroup = "true") 
protected final User _googleUser;

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

次に、コードで新しいAdUserオブジェクトを作成し、データを入力します。_googleUserデータメンバーのUserクラスは、com.google.appengine.api.users.Userから取得されます

次に、私のコードで次のコマンドを実行します。

try {
        pm.makePersistent(user);
    } finally {
       pm.close();
}

その後:

PersistenceManager pm = PMF.get().getPersistenceManager();
Query q = pm.newQuery(AdUser.class);
try {
    @SuppressWarnings("unchecked")
    List<AdUser> list = (List<AdUser>) q.execute();
    userArray = new ArrayList<AdUser>(list);
} finally {
    q.closeAll();
    pm.close();
}

リストを反復処理すると、たとえば_firstNameと_lastNameのデータメンバーは正しく取得されますが、たとえば_idフィールドと_googleUserフィールドは正しく取得されず、それぞれ0とnullとして返されます。

私はここではかなり無知です。何か案が?

4

1 に答える 1

0

およびとして設定しfinal、それらを初期化していません。したがって、クラスのインスタンスを作成してデータストアに永続化するときに、それらの値を変更することはできません。_id_googleUser

于 2012-10-27T18:25:44.777 に答える