Jackson による遅延オブジェクトのシリアル化問題への対処
Jackson がフェッチされていない遅延属性をシリアル化するのを阻止するというあなたの願望は、簡単に解決できます。 indybee からの貴重な意見のおかげで、現在の Spring、Hibernate、Jackson バージョンで動作するソリューションを発見しました。
Spring バージョン 3.1.2 以降では、拡張された MappingJackson2HttpMessageConverter が導入されており、 Spring 3.1 チュートリアルで説明されているカスタム コンバータ。このコンバータを利用するには、WebMvcConfigurerAdapter から Spring 構成クラスを拡張し、configureMessageConverters メソッドをオーバーライドします。
configureMessageConverters メソッド内で、Hibernate4Module が登録された MappingJackson2HttpMessageConverter を追加します。 Java 構成では、これは次のようになります。
@Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(jacksonMessageConverter()); super.configureMessageConverters(converters); }
XML 構成の場合、チュートリアルで提案されているようにカスタム HibernateAwareObjectMapper を作成します。
<mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="com.pastelstudios.json.HibernateAwareObjectMapper" /> </property> </bean> </mvc:message-converters>
このソリューションは、Hibernate4Module を Spring のデフォルトとシームレスに統合します。メッセージコンバーター。フェッチされていない遅延オブジェクトが Jackson によってシリアル化されないようにします。
以上がJackson が Spring でフェッチされていない Lazy 属性をシリアル化しないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。