Java GAE中的集合问题

Java GAE中的集合问题,java,google-app-engine,collections,google-cloud-datastore,Java,Google App Engine,Collections,Google Cloud Datastore,学习GAE我遇到了一些问题。我想在数据库中保存用户的联系人列表。我使用addUser()添加新用户,它可以正常工作。但是当我刷新页面时,列表是空的(不是空的)。在GAE“数据存储查看器”中,“列表”字段为空,但在应用程序中它存在 @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true") public class ContactList implements IUserList { @

学习GAE我遇到了一些问题。我想在数据库中保存用户的联系人列表。我使用addUser()添加新用户,它可以正常工作。但是当我刷新页面时,列表是空的(不是空的)。在GAE“数据存储查看器”中,“列表”字段为空,但在应用程序中它存在

@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class ContactList implements IUserList { 

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

    @Persistent
    protected List<Key> list;

    @Persistent(mappedBy = "contactList")
    private User user;  

    public Key getKey(){
        return this.key;
    }

    public User getUser() {
        return user;
    }

    public ContactList(User user) {
        this.list = new ArrayList<Key>(); //this line invoice one only 
    }

    @Override
    public Boolean addUser(User user) {
        if(this.list.contains(user.getKey())){
            return false;
        }else{      
            this.list.add(user.getKey());

            return true;
        }
    }

    @Override
    public boolean containsKey(Long id) {
        return false; //this.list.containsKey(id);
    }

    @Override
    public User get(Long id) {
        return null;// this.list.get(id);
    }

    @Override
    public void removeUser(User user) {
        this.list.remove(user.getKey());    
    }

    @Override
    public int size() {
        return this.list.size();
    }

    @Override
    public List<User> users() {

        ArrayList<User> users = new ArrayList<User>(); 

        for(Key key : this.list) {
            User user = UserManager.getInstance().getUser(key);
            users.add(user);
        }       

        return users;
    }

    @Override
    public void addEvent(IEvent event) {
        for(User user : this.users()) {
            user.addEvent(event);
        }
    }

    @Override
    public void clearEvents() {
    }

    @Override
    public ArrayList<IEvent> getEvents() {
        return null;
    }



}
@PersistenceCapable(identityType=identityType.APPLICATION,detaccable=“true”)
公共类ContactList实现IUserList{
@主键
@持久性(valueStrategy=IdGeneratorStrategy.IDENTITY)
私钥;
@持久的
受保护名单;
@持久(mappedBy=“contactList”)
私人用户;
公钥getKey(){
返回此.key;
}
公共用户getUser(){
返回用户;
}
公共联系人列表(用户){
this.list=new ArrayList();//此行只开一张发票
}
@凌驾
公共布尔addUser(用户){
if(this.list.contains(user.getKey())){
返回false;
}否则{
this.list.add(user.getKey());
返回true;
}
}
@凌驾
公共布尔containsKey(长id){
返回false;//this.list.containsKey(id);
}
@凌驾
公共用户获取(长id){
返回null;//this.list.get(id);
}
@凌驾
public void removeUser(用户用户){
this.list.remove(user.getKey());
}
@凌驾
公共整数大小(){
返回此.list.size();
}
@凌驾
公共列表用户(){
ArrayList用户=新建ArrayList();
for(键:this.list){
User User=UserManager.getInstance().getUser(键);
用户。添加(用户);
}       
返回用户;
}
@凌驾
公共事件(IEvent事件){
for(用户:this.users()){
user.addEvent(事件);
}
}
@凌驾
公共事件{
}
@凌驾
公共ArrayList getEvents(){
返回null;
}
}

您没有将数据持久化到数据库中,因此实际上是在执行重影读取


保存数据的方法:

我考虑过这个问题。但我使用的是'detachable=“true'”。我是手工做的吗?