java – Play框架JPA:如何实现一对多的关系?
发布时间:2020-12-14 05:55:23 所属栏目:Java 来源:网络整理
导读:我有一个帖子模型,每个帖子也包含块(也是一个模型).我正在使用这个网站的播放框架,我想要做的是在一个页面上显示所有帖子的X号帖子. JPA(或播放框架的实现,不知道它是哪一个)有find()方法,我可以使用它查询控制器中的帖子,而不是像我这样将帖子列表发送到我
我有一个帖子模型,每个帖子也包含块(也是一个模型).我正在使用这个网站的播放框架,我想要做的是在一个页面上显示所有帖子的X号帖子. JPA(或播放框架的实现,不知道它是哪一个)有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; } } 我该怎么做? 解决方法
只需使用一对多关键字:
@OneToMany private List<Block> blockList; 但是,您是否需要getBlocks方法尚不清楚.如果您只是从数据库中获取块,那么您不需要此方法. 注意:您可能想了解有关@OneToMany的更多信息.例如,您可以添加选项@OneToMany(cascade = {CascadeType.PERSIST,CascadeType.REMOVE}),这样当您从数据库中持久保存或删除Post时,内部blockList也会这样做. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |