*ToMany Collections malas secara default di Hibernate &JPA. Kesalahannya adalah karena Jackson mencoba membuat serial OneToMany ketika manajer entitas (alias sesi dalam hibernate-speak) ditutup. Oleh karena itu, koleksi malas tidak dapat diambil.
Spring Boot dengan JPA secara default menyediakan OpenEntityManagerInViewFilter
untuk EM primer. Ini memungkinkan akses DB hanya-baca, tetapi, secara default hanya berfungsi untuk EM utama.
Anda memiliki 3 opsi:
1) Anda dapat menambahkan pengambilan gabungan, mis. Bagaimana cara kerja FetchMode di Spring Data JPA
2) Anda dapat menambahkan OpenEntityManagerInViewFilter untuk pengelola entitas non-utama dan menambahkannya ke konteks Anda.
Harap perhatikan bahwa ini menyiratkan tantangan, untuk setiap instans Bar dan Foo, aplikasi Anda akan kembali ke database untuk mengambil OneToMany. Ini adalah bagian yang tidak berfungsi untuk Bar, tetapi untuk Foo. Ini menyiratkan masalah skalabilitas (disebut masalah N + 1 oleh beberapa orang) karena untuk setiap foo dan bar, Anda menjalankan kueri tambahan, yang akan menjadi lambat untuk jumlah Foo dan Bar yang tidak sepele.
3) Alternatifnya adalah membuat koleksi Anda di Bar dan Foo bersemangat (lihat https://docs.Oracle.com/javaee/7/api/javax/persistence/OneToMany.html#fetch-- ) tetapi ini perlu dianalisis dengan cermat jika skalabilitas menjadi perhatian Anda.
Saya akan merekomendasikan opsi #1.