Chapter 10: Configuring DataSource and Connection Pool
Chapter 11: Audit
Chapter 12: Schemas
Chapter 13: Pagination
Chapter 14: Queries
Chapter 15: Locking
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
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.
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.
You will:
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