我使用 Spring 并正在创建一个 REST 服务。
这是我的控制器的一部分:
@RequestMapping("/get")
public @ResponseBody Person getPerson() {
Person person = personRepository.findOne(1L);
//(1) person.setRoles(null);
return person;
}
该人的角色是惰性初始化的,当时不需要。当 (1) 被注释掉时,一切都会失败
org.springframework.http.converter.HttpMessageNotWritableException:无法写入 JSON:无法延迟初始化角色集合:no.something.project.Person.roles,无法初始化代理 - 无会话等。
我可以通过执行 (1) 来解决这个问题,手动将其设置为 null(或其他值),因此当 Jackson 尝试序列化我的对象时它不会失败。
然而,这很烦人,必须在不同的地方多次完成。我想要一些简单的解决方案,在未初始化时忽略那些延迟初始化的字段,或者只是将它们设置为空。
注意:对象上的值上的@JsonIgnore 不是解决方案,因为在其他情况下,我希望包含这些值。