您的位置:首页 > 其它

jackson的循环问题和hibernate懒加载问题

2015-05-30 22:59 260 查看
问题:

在用jackson的时候,报错了,而且是报了很多很长的错误,这是因为你的实体A中里面有属性是其他实体对象B,而B对象有含有对象C。。。。。这样子循环的引用,使得出现循环问题

解决:如果你要将A转为json,这时可以通过在你的对象A中配置 @JsonIgnoreProperties(value={"b"})

比如:

@JsonIgnoreProperties(value={"b"})
class A {
private B b;

public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
}

class B {
private C c;

public C getC() {
return c;
}

public void setC(C c) {
this.c = c;
}
}

class C {
//private D d;
}


问题:

我们有很多时候用了Hibernate的懒加载,要将Object转为json有时会遇到报如下错误

No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through
reference chain: ***************_$$_javassist_15["hibernateLazyInitializer"])

解决:

在要转为json格式的实体中的类加上@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})

当然如果上面的2个问题都出现,就加上@JsonIgnoreProperties(value={"b","hibernateLazyInitializer","handler","fieldHandler"})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: