Should we map both sides?

It usually simplifies the matter if you try not to use bi-directional relationship whenever possible and rather fall back to a repository to obtain all the entities that make up the backside of the association.

If Yes - Do we have to manually update both sides?

CascadeType.ALL is for propagating the CRUD operations on the parent entity to the child entities. CascadeType.ALL should be used for small child collection only as it can cause performance issue, we will dig more into this in the later part

First, the @ManyToOne association uses the FetchType.LAZY strategy because by default @ManyToOne and @OneToOne associations use the FetchType.EAGER strategy which is bad for performance.

Common (recursion) problems

Spring Data Jpa Repository

https://www.baeldung.com/spring-data-crud-repository-save