3

私のUserクラスには、文字列のリストであるフィールドがあります。

@Persistent
private List<String> openIds;

新しいユーザーを作成するときは、次のようにします。

User user = new User();
user.openIds.add(openid);
pm.makePersistent(user);

その最後の行の後でブレークして見ると、openIdsそこに入力した openid が含まれています。しかし、後でUser user = pm.getObjectById(User.class, id);正しい ID で呼び出すと、openIds フィールドは空のリストになります。

誰がそれを引き起こす可能性があるか知っていますか?

編集:ところで、私はGoogle App Engineで実行しています

更新: データストア ビューアーを見ると、openid がデータベースに正しく格納されていることがわかります。だから、それを正しく取得していないだけです...

更新 2: 現在は正常に動作しています。私は何も変わっていないと確信しています。データベースから古いバージョンのユーザー オブジェクトが取り出されたことが原因だと思います。openid を保存するコードを作成する前に挿入されたユーザー オブジェクト。データベースを消去すると、問題なく動作しました。

4

1 に答える 1

0

そのフィールドを取得計画に入れていませんか? セッターを経由するのではなく、永続フィールドに直接アクセスしますか?

于 2010-02-11T18:08:08.067 に答える