Java / Lombok Interview questions
Why can @Data be risky on JPA entity classes?
@Data bundles @EqualsAndHashCode and @ToString across every field,
which interacts poorly with several JPA/Hibernate specifics: lazy-loaded associations can trigger unwanted
database queries the moment toString() or equals() touches them, and including a
mutable, database-generated id field in equals/hashCode can break
collection behavior for entities that are added to a Set before being persisted (when the id is
still null) and then persisted afterward (when it gets a real value).
@Entity @Data // risky: consider a more targeted set of annotations instead public class Order { @Id private Long id; @OneToMany private List<OrderItem> items; // lazy loading + toString/equals = trouble }
A more deliberate approach on entities is usually: exclude lazy associations from
@ToString/@EqualsAndHashCode, and base equality on a stable business key rather than
the mutable, sometimes-null database id, rather than reaching for the all-in-one @Data bundle by
default.
Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!
Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.
Invest now!!! Get Free equity stock (US, UK only)!
Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.
The Robinhood app makes it easy to trade stocks, crypto and more.
Webull! Receive free stock by signing up using the link: Webull signup.
More Related questions...
