私の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 を保存するコードを作成する前に挿入されたユーザー オブジェクト。データベースを消去すると、問題なく動作しました。