You already know I dislike JPA because it gives us too many different shotguns and allows us to become swiss cheese.
I also dislike the “one entity per table” approach that JPA enforces, because tables can be used differently, depending on the current business usecase (domain) that is being developed.
I do not believe that “one entity per table” is bad, I’m arguing that it is nuanced.
I have started reading about Spring Data JDBC, and I believe this is closer to what i would like an ORM to do.
Links about this topic:
Has a nice example (Rental Company
), and explains the concept of Aggregate root. Shows differences between Spring JDBC, Spring Data JDBC and Spring Data JPA
Check the portion about rollbacks in 2022-05. It is empty in 2022-01.