*ToMany Collections är lata som standard i Hibernate &JPA. Felet beror på att Jackson försöker serialisera OneToMany när enhetshanteraren (alias session i hibernate-speak) är stängd. Därför kan lata samlingar inte hämtas.
Spring Boot med JPA tillhandahåller som standard ett OpenEntityManagerInViewFilter
för den primära EM. Detta tillåter skrivskyddad DB-åtkomst, men fungerar som standard bara för den primära EM.
Du har 3 alternativ:
1) Du kan lägga till en joinhämtning, t.ex. Hur fungerar FetchMode i Spring Data JPA
2) Du kan lägga till ett OpenEntityManagerInViewFilter för den icke primära enhetshanteraren och lägga till det i ditt sammanhang.
Observera att detta innebär en utmaning, för varje Bar och Foo-instans kommer din app att gå tillbaka till databasen för att hämta OneToMany. Det här är den del som inte fungerar för Bar, utan för Foo. Detta innebär ett skalbarhetsproblem (av vissa kallat N + 1-problemet) eftersom du för varje foo och bar kör en ytterligare fråga, som blir långsam för icke-triviala mängder Foos och Bars.
3) Ett alternativ är att göra din samling på Bar and Foo ivrig (se denna https://docs.oracle.com/javaee/7/api/javax/persistence/OneToMany.html#fetch-- ) men detta måste analyseras noggrant om skalbarhet är ett problem för dig.
Jag skulle rekommendera alternativ 1.