Spring Data comes with a common programming model for persisting data in various types of database engine, ranging from traditional relational databases (SQL databases) to various types of NoSQL database engine, such as document databases (for example, MongoDB), key-value databases (for example, Redis), and graph databases (for example, Neo4J).
The Spring Data project is divided into several subprojects and in this book we will use Spring Data subprojects for MongoDB and JPA that have been mapped to a MySQL database.
JPA stands for Java Persistence API and is a Java specification about how to handle relational data. Please go to https://jcp.org/aboutJava/communityprocess/mrel/jsr338/index.html for the latest specification, which is JPA 2.2 at the time of writing.
The two core concepts of the programming model in Spring Data are entities...