gpt4 book ai didi

java - 如何在 Play 中保存 ArrayList?

转载 作者:太空宇宙 更新时间:2023-11-04 07:36:46 26 4
gpt4 key购买 nike

这似乎是一个非常基本的问题,但我有一个模型(用户),我想存储一个字符串数组列表(它们是其他用户的 id)。我这样声明列表:

 public List<String> friends = new ArrayList<String>();

向数组添加条目后,我保存用户。但当我尝试使用它时, friend 总是为空。有没有特定的方法来保存ArrayList?任何帮助将不胜感激。

我的模型:

@Entity
public class User extends Model {

@Id
public String username;
public String password;

public List<String> friends = new ArrayList<String>();

public static Finder<String, User> find = new Finder<String, User>(String.class, User.class);

// Constructor
public User(String username, String password){
this.username = username;
this.password = password;
}

// Methods
public void addFriend(String friend){
friends.add(friend);
}

// Static Methods
public static User authenticate(String username, String password){
return find.where().eq("username", username).eq("password", password).findUnique();
}

public static void befriend(String user1, String user2){
User.find.ref(user1).addFriend(user2));
User.find.ref(user2).addFriend(user1);

User.find.ref(user1).save();
User.find.ref(user2).save();
}

}

Controller 方法:

return ok(index.render(
User.find.byId(request().username()).friends,
));

还有一个非常简单的 View :

@(friends: List[User])

<div id="current_friends">
@for(friend <- friends) {
@friend.username
}
</div>

最佳答案

您需要使用 saveManyToManyAssociations(String fieldname)“手动”保存关系,例如:

public static void befriend(String userName1, String userName2){

User user1 = User.find.byId(userName1);
User user2 = User.find.byId(userName2);

user1.friends.add(user2);
user2.friends.add(user1);

user1.save();
user2.save();

// here...
user1.saveManyToManyAssociations("friends");
user2.saveManyToManyAssociations("friends");

}

(注意:从我的顶部编写,因此请自行调试)

关于java - 如何在 Play 中保存 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16755077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com