ITKeyword,专注技术干货聚合推荐

注册 | 登录

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

u011642663 分享于 2015-05-30

推荐:jackson json数据过滤,用于hibernate的懒加载对象级联关系的json解析

jackson json数据过滤,有两种过滤方式: 1、entity上添加过滤 @JsonIgnoreProperties(value={"hibernateLazyInitializer"})    @column(length=200) private St

2019阿里云双12.12最低价产品入口(新老用户均可),
地址https://www.aliyun.com/minisite/goods

问题:

在用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懒加载深入分析

Hibernate懒加载深入分析 懒加载可以提高性能吗  不可以简单的说"能",因为Hibernate的关系映射拖累了SQL的性能,所以想出懒加载来弥补.只是弥补而以,不会超越.所

问题:

我们有很多时候用了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"})

推荐:Hibernate如何解决懒加载

1.明确初始化 在session还没有关闭时访问一次getSet()方法,强制访问数据库或者Hibernate.initialize(XX) 2.openSessionInView  这个需要过滤器配合使用,也就是扩

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

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。