This book is a collection of developer code recipes and best practices for persisting data using Spring, particularly Spring Boot. The book is structured around practical recipes, where each recipe discusses a performance case or performance-related case, and almost every recipe has one or more applications. Mainly, when we try to accomplish something (e.g., read some data from the database), there are several approaches to do it, and, in order to choose the best way, you have to know the implied trades-off from a performance perspective. You’ll see that in the end, all these penalties slow down the application. Besides presenting the arguments that favor a certain choice, the application is written in Spring Boot style which is quite different than plain Hibernate.
Persistence is an important set of techniques and technologies for accessing and using data, and this book demonstrates that data is mobile regardless of specific applications and contexts. In Java development, persistence is a key factor in enterprise, ecommerce, cloud and other transaction-oriented applications.
After reading and using this book, you’ll have the fundamentals to apply these persistence solutions into your own mission-critical enterprise Java applications that you build using Spring.
What You Will Learn
- Shape *-to-many associations for best performances
- Effectively exploit Spring Projections (DTO)
- Learn best practices for batching inserts, updates and deletes
- Effectively fetch parent and association in a single SELECT
- Learn how to inspect Persistent Context content
- Dissect pagination techniques (offset and keyset)
- Handle queries, locking, schemas, Hibernate types, and more
Who This Book Is For
Any Spring and Spring Boot developer that wants to squeeze the persistencelayer performances.
Cuprins
Chapter 1: Associations.- Chapter 2: Entities.- Chapter 3: Fetching.- Chapter 4: Batching.- Chapter 5: Collections.- Chapter 6: Connections and Transactions.- Chapter 7: Identifiers.- Chapter 8: Calculating Properties.- Chapter 9: Monitoring.- Chapter 10: Configuring Data Source and Connection Pool.- Chapter 11: Audit.- Chapter 12: Schemas.- Chapter 13: Pagination.- Chapter 14: Queries.- Chapter 15: Inheritance.- Chapter 16: Types and Hibernate Types.- Appendix A: JPA Fundamentals.- Appendix B: Associations Efficiency.- Appendix C: 5 SQL Performance Tips That Will Save Your Day.- Appendix D: How to Create Useful Database Indexes.- Appendix E: SQL Phenomena.- Appendix F: Spring Transaction Isolation Level.- Appendix G: Spring Transaction Propagation.- Appendix H: Understanding Flushing Mechanism.- Appendix I: Second Level Cache.- Appendix J: Tools.- Appendix K: Hibernate 6
Despre autor
Anghel Leonard is a Chief Technology Strategist with 20+ years of experience in the Java ecosystem. In daily work, he is focused on architecting and developing Java distributed applications that empower robust architectures, clean code, and high-performance. Also passionate about coaching, mentoring and technical leadership. He is the author of several books, videos and dozens of articles related to Java technologies.