【发布时间】:2014-01-14 02:42:12
【问题描述】:
在 Java 版本的 Play Framework 2.0 中,我试图将我的一个名为 Post 的类的 ArrayList 保存在我的另一个类 ForumThread 中。现在,在ForumThread 的构造函数中,我创建了一个新的Post 并将其添加到帖子的ArrayList 中,然后保存我的数据库。但是,在我保存 ForumThread 的任何实例后,Posts 的 ArrayList 变为空。当我呈现页面时,这会导致错误,我的问题是双重的。
1) 如何使我的ForumThread 的帖子数组列表在保存后不为空?
2) 为什么一保存就变成null了。
所有相关代码都在下面,作为说明,我尝试使用 @ManyToOne 和 @OneToMany 注释但没有成功,这是尝试之前的代码。
论坛线程.java
package models;
import java.util.*;
import controllers.*;
import play.db.ebean.*;
import play.data.validation.Constraints.*;
import javax.persistence.*;
@Entity
@Table(name="threads")
public class ForumThread extends Model{
@Id
public long id;
@Column
@Required
public String title;
@Column
public User creator;
@Column
public List<Post> posts = new ArrayList<Post>();
public String initialMessage;
public static play.db.ebean.Model.Finder<Long, ForumThread> find = new Finder<Long, ForumThread>(Long.class, ForumThread.class);
public ForumThread(User creator, String title, String initialMessage) {
this.creator = creator;
this.title = title;
Post initialPost = new Post(creator, initialMessage, title);
this.posts.add(initialPost);
}
public static void create(ForumThread thread){
thread.save();
}
public static List<ForumThread> all(){
return find.all();
}
}
Post.java
package models;
import java.util.*;
public class Post{
public User poster;
public String message;
public String title;
public Post(User poster, String message, String title){
this.poster = poster;
this.message = message;
this.title = title;
}
}
【问题讨论】:
标签: java arraylist playframework playframework-2.0 ebean