Spring 3 + JPA 2 (hibernate Impl) + Json メディア タイプに基づく Spring MVC の contentNegotiationResolver を使用しており、Spring フレームワークの org.springframework.web.servlet.view.json.MappingJacksonJsonView を利用しているときに、次の例外スタック トレースがスローされました。
*
org.codehaus.jackson.map.JsonMappingException: 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:..... )
at org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62)
at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:268)
at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:146)
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:118)
at org.codehaus.jackson.map.ser.ContainerSerializers$IndexedListSerializer.serializeContents(ContainerSerializers.java:236)
at org.codehaus.jackson.map.ser.ContainerSerializers$IndexedListSerializer.serializeContents(ContainerSerializers.java:189)
at org.codehaus.jackson.map.ser.ContainerSerializers$AsArraySerializer.serialize(ContainerSerializers.java:111)
at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:296)
at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:224)
at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:925)
at org.springframewor
*
以下のスレッドで提供されている解決策が機能していません (Json AutoDetect を使用) は機能しません。
Hibernate オブジェクトをシリアライズするときに奇妙な Jackson 例外がスローされる
Json AutoDetect を提供し、getter メソッドに Json プロパティ アノテーションを明示的に提供しても機能しません。それでも、すべての属性が解析されます。また、本質的に再帰的または親子関係の一種である @JsonIgnore を使用して、JPA Entity クラスの特定の属性を回避することで成功しました。また、エンティティ クラスをデタッチしようとしましたが、うまくいきませんでした。
私のエンティティ クラスから、Jackson パーサーが行う必要があるのは、いくつかの 3 つの単純な文字列属性を解析することだけであり、残りの属性は @JsonIgnore でマークされています。
同様の問題に直面し、解決した方がいらっしゃいましたらお知らせください。