我有一个Posts模型,每个帖子还包含Blocks(也有一个模型)。我正在使用该网站的播放框架,我想做的是在一页上显示X帖子的数量及其所有块。JPA(或播放框架的实现,不知道它是哪个)具有find()我可以在控制器中查询帖子的方法,然后我可以将帖子列表发送到我的视图中,如下所示:
Posts
Blocks
find()
render(postList);
我想知道的是将每个帖子的块发送到视图的最佳方法是什么。我可以在getBlocks()Post模型中添加一个方法,该方法发送回一个blocksList,然后从视图中调用它,但是这对我来说似乎很杂乱,并且由于将要从视图中获取块,因此将破坏MVC的目的。还是我错了?)
getBlocks()
是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; } }
我应该怎么做?
只需使用一对多关键字:
@OneToMany private List<Block> blockList;
但是,尚不清楚是否需要该getBlocks方法。如果您只是从数据库中获取块,则不需要此方法。
getBlocks
注意:您可能想阅读有关的更多信息@OneToMany。例如,您可以添加选项@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REMOVE}),以便当您持久化Post数据库或从数据库中删除数据库时,内部数据库blockList执行相同的操作。
@OneToMany
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REMOVE})
Post
blockList