Hibernate使用Gson时报错:org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?

Hibernate使用Gson时报错:org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?

主要是使用Hibernate查询的实体类有多对一的关系,Hibernate默认延迟加载,不会查询关联的实体一方,只有实际使用的时候才进行查询,导致Gson转Json时报错


改善方法:

一对多配置文件中加入 lazy="false",我是给关联双方都加入了这句,就可以使用了

<set name="Linkmans" cascade="save-update" inverse="true" lazy="false" >



Caused by: java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
	at com.google.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:67)
	at com.google.gson.internal.bind.TypeAdapters$1.write(TypeAdapters.java:61)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
	at com.google.gson.internal.bind.ArrayTypeAdapter.write(ArrayTypeAdapter.java:93)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
	at com.google.gson.internal.bind.ObjectTypeAdapter.write(ObjectTypeAdapter.java:107)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:96)
	at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:60)
	at com.google.gson.Gson.toJson(Gson.java:593)
	at com.google.gson.Gson.toJson(Gson.java:572)
	at com.google.gson.Gson.toJson(Gson.java:527)
	at com.google.gson.Gson.toJson(Gson.java:507)
	at com.ssh.web.CustomerServlet.findLinkman(CustomerServlet.java:37)
	... 25 more


猜你喜欢

转载自blog.csdn.net/java_raylu/article/details/73929003