[英]Play framework JPA: how to implement one-to-many relationship?
我有一個Posts
model 並且每個帖子還包含Blocks
(也是一個模型)。 我正在使用這個網站的播放框架,我想做的是在一頁上顯示 X 個帖子,所有的塊。 JPA(或play框架的實現,不知道是哪一個)有find()
方法,我可以用它來查詢我的controller中的帖子,然后我會像這樣將帖子列表發送到我的視圖:
render(postList);
我想知道將每個帖子的塊發送到視圖的最佳方式是什么。 我可以在我的 Post model 中添加一個getBlocks()
方法,它發回一個 blocksList,並從視圖中調用它,但這對我來說似乎很亂,並且它會破壞 MVC 的目的,因為將從視圖中獲取塊..(或者我錯了?)
JPA 還是玩? 提供某種與帖子一起檢索塊的方法?
這就是我的 Post model 現在的樣子,沒有 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
方法。 如果您只是從數據庫中獲取塊,那么您不需要此方法。
注意:您可能想了解更多關於@OneToMany
的信息。 例如,您可以添加選項@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REMOVE})
以便當您從數據庫中持久化或刪除Post
時,內部blockList
會執行相同的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.