Articles
Practical notes on Java, persistence, and the details that make backend software work well.
Optimizing JPA Fetch Strategies: Navigating Performance Pitfalls and Memory Overheads
A look at JPA's eager and lazy fetch strategies, the Cartesian Product and n+1 selects problems they cause, and how Hibernate's @BatchSize annotation helps strike a balance between the two.
Crafting Efficient and Effective hashCode Method in Java
A practical guide to writing a correct, high-performance hashCode() in Java — covering the equals/hashCode contract, a step-by-step implementation pattern, and caching tips for immutable classes.
Java's Object.equals(): The Overlooked Function That Can Make or Break Your Code
Why overriding Object.equals() properly matters, the reflexive/symmetric/transitive/consistent contract behind it, and how inheritance can quietly break Symmetry and Transitivity.