我有一个非常奇怪的情况要在Spring中处理并使用更快的jackson返回Json。我已经用下面的方式定义了主要的对象结构,
class Obj1
{
@OneToMany(fetch = FetchType.LAZY, mappedBy = "field1")
List<Obj2> objs2;
//Getter and Setter methods
}
拥有类似的对象结构会导致异常,
nested exception is com.fasterxml.jackson.databind.JsonMappingException: failed to lazily initialize a collection of role
根据春天的概念,很明显,当更快的杰克逊试图按照我的要求检索数据时,在那个特定时间的会话工厂不存在,因此它会抛出这种例外。无法初始化角色LAZILY的集合。
为了避免这个问题,很明显将fetchType设为EAGER。但这不是我想要的,
使其成为EAGER会触发一个额外的查询,在少数情况下可能是不必要的。是的我只在少数情况下需要Object2类型列表。您现在可能正在考虑使用JsonView。是的,这有效,但不会停止查询影响我的应用程序的后端。
因此,我正在寻找一种仍然保留LAZY并尝试动态获取数据而不会产生此问题的解决方案。我坚信春天肯定会有这种能力,并且会有一种替代方案来处理这种情况。