我有两个实体:User
和Post
(一对多关系)。 Post
字段:id
,creationDate
,title
,content
,user
。
数据存储在数据库中,并通过Hibernate访问。
我有一个控制器将Post对象作为JSON传递给JavaScript。然后它显示在网页上。但并不总是需要传递所有Post
字段。例如,我需要向用户显示标题和创建日期,如果用户按下按钮Show content
,我只需要显示帖子内容(我只想在服务器上请求它)需要表明)。
所以这是一个问题:如何在Post对象中实现内容字段的 lazy 初始化?我应该在我的控制器中编写两个方法:一个用于生成带有帖子列表的JSON并将内容字段设置为null
或空String
,另一个只传递内容字符串?
答案 0 :(得分:1)
在db。中将帖子内容设为对象和单个表。
在java中看起来如下:
public class Post {
...
PostContent postContent;
}
答案 1 :(得分:1)
首先,您可以尝试通过Hibernate.initialize(lazyCollection)
在DAO初始化延迟集合。如果它不起作用,则使用FetchType.EAGER
或在请求期间保持会话打开,并在需要时提取集合。