
Update a student entity with Spring Data JPA by using the save method; first persist inserts the object, then merge updates the database after loading the persisted state.
Explore Spring Data Commons and its repository hierarchy, including JPA, CRUD, paging and sorting repositories, and how Spring Data JPA and MongoDB share a common data access model.
Learn how to create a custom spring data repository by extending the repository interface to combine crud, jpa, and paging and sorting methods, with runtime proxy generation.
Explore how Spring Data JPA prioritizes three query options—SQL via the query annotation, a named query, and a derived query—with the annotation taking precedence.
Write derived queries in Spring Data JPA to order users by level descending, return first two and top user, and filter by first level or inactive or email containing else.
Learn how to delay database connection acquisition in a Spring Boot application using a connection pool, enabling Hibernate to obtain a connection just before the first database operation.
Learn how Spring transaction propagation works, starting with the default required behavior, and explore supports, not supported, requires new, never, mandatory, and nested rules, with JDBC versus Hibernate considerations.
Explore propagation rules in spring transactional methods through quiz-style questions, examining how existing transactions affect bar method execution versus starting new transactions, with scenarios and seven-option choices.
Use the modifying annotation with the query annotation to perform updates or deletes within a transaction. Bulk deletions run directly on the database, bypassing the persistence context and callbacks.
Learn to fetch only name and salary data for the first three guides with salary over 2000 using spring data jpa projections and read-only transactions.
Call stored procedures with Spring Data JPA's procedure annotation to count employees by department, find department employees, and return name and salary via a projection interface.
Map a uni directional many-to-one relationship between student and guide with a join column and a foreign key, and optimize data access by cascading persist and lazy fetching.
Learn how to implement a bidirectional one-to-many relationship between guide and students in Spring Data JPA, manage ownership with mappedBy, cascade persists, and synchronize both sides with helper methods.
Explore entity graphs in spring data jpa to eagerly load associated data, such as a guide and its students, without changing mappings, using named and ad hoc graphs.
Map a bidirectional many-to-many relationship using a join table with foreign keys. Declare the owner with mapped by and synchronize both sides with helper methods to cascade persists.
Explore bi-directional many-to-many relationships between movies and actors, using a join table and a service method, and determine the outcomes of code lines 18–20 through a guided exercise.
Explore repository inheritance in a single table inheritance mapping, using a base repository to avoid query duplication and enable polymorphic find by title across book, e-book, and paperback.
Explore repository inheritance in Spring Data JPA by writing a manual query that returns a type by ISBN, handling book, e-book, and paperback via single table inheritance.
Understand how the sequence strategy uses a database sequence to generate primary keys before insert, enabling pre insert identifier generation when persisting and batched inserts on commit.
Persist three students with the sequence strategy and pre-insert generation to see ids generated before insert. Trigger the post-persist callback 'foo' to print ids after insert as the transaction commits.
The first level cache, via the persistence context and entity manager, caches entities within a transaction; repeatable reads ensure consistent results, and refresh, detach, and clear manage state.
If you’re a Spring/Java programmer who wants to learn the essentials and some of the advanced topics of Spring Data JPA with Hibernate, then you’re the one this course is designed for.
It uses Hibernate as the JPA provider for this course, which is also the default JPA provider of Spring Data JPA. You'll be learning the fundamentals and some of the advanced Spring Data JPA features covering Repositories, Derived Queries, Paging & Sorting, Query-By-Example (QBE), Auditing, Transactions & Concurrency, Modifying Queries, Projections, Mapping Associations and Mapping Inheritance.
It'll be discussing some of the Best Practices and Performance Optimizations as well.
Spring Data JPA provides an abstraction layer built on top of the JPA API specification, so JPA is important for this course, but even if you have just some basic experiences with JPA/Hibernate, you should not find it difficult to complete this course successfully, as it also covers the most essential topics of JPA at the end of the course in Appendix A.
The course also discusses the SQL at runtime every step of the way, and the performance implications of it. There will also be Lab-Exercises and Quizzes throughout the course, to challenge you, and also to help you revise the concepts learnt in the previous sessions.
MySQL and H2 in-memory database are the two RDBMS that the used in the course.