【发布时间】:2011-09-09 13:55:56
【问题描述】:
我有一个Posts 模型,每个帖子还包含Blocks(也是一个模型)。我正在使用这个网站的播放框架,我想要做的是在一页上显示 X 个帖子以及所有这些块。 JPA(或 play framework 的实现,不知道是哪一个)有 find() 方法,我可以使用它在我的控制器中查询帖子,然后我会像这样将帖子列表发送到我的视图:
render(postList);
我想知道将每个帖子的块发送到视图的最佳方式是什么。我可以在我的 Post 模型中添加一个getBlocks() 方法,该方法发回一个 blocksList,然后从视图中调用它,但这对我来说似乎很乱,并且它会破坏 MVC 的目的,因为将从视图中获取块..(或者我错了吗?)
是 JPA 还是 Play!提供某种与帖子一起检索块的方法?
这就是我的 Post 模型现在的样子,没有 getter 和 setter:@Entity
@Table(name="posts")
public class Post extends GenericModel{
@Id
@Column(name="post_id")
private int id;
@Column(name="post_situation")
private String situation;
@Column(name="post_date")
private Date date;
@Column(name="post_userid")
private int userid;
private List<Block> blockList;
public List<Block> getBlocks() {
List<Block> block = null;
return blockList;
}
}
我应该怎么做?
【问题讨论】:
-
如果
blocks是post的一个组成部分,那么render如何在没有blocks的情况下呈现一些post? -
我可能错了。这是否意味着一旦我创建了我的 postList,getBlocks 中的代码就会被执行,并且每个对象都将包含正确的 Blocks?
-
您将
blockList声明为Post的成员。我假设某处(Post的构造函数?)blockList在render被Post调用之前被初始化。 -
不,它没有被调用。我想也许有办法让 JPA 来处理这个问题..
-
好的。我不知道该怎么做。但我想你应该在调用
render之前初始化你的blockList。
标签: java sql model-view-controller jpa playframework