簡體   English   中英

播放框架JPA:如何實現一對多關系?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM