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