From my experience, both in helping teams and conducting training, here are some pitfalls/mistakes I have encountered that caused some problems in Java-based systems that use JPA. Requiring a public no-arg constructor Always using bi-directional associations/relationships Using @OneToMany for collections that can become huge Requiring a Public No-arg Constructor Yes, a JPA @Entity requires a ...