Spring Data Rest – How to create a RestAPIs with JPA Many-to-Many relational entities | SpringBoot + MySql + HAL Browser

In the tutorial, JavaSampleApproach will guide how to build a Spring Data Rest application for Jpa Many-To-Many relational entities with SpringBoot.

Related posts:
Spring Data Rest – How to create a RestAPIs with JPA One-to-Many relational entities | SpringBoot + MySql + HAL Browser
How to access MySQL database with Spring Data Rest application
Spring JPA – Many to Many relationship

I. Technologies

– Java 8
– Maven 3.6.1
– Spring Tool Suite: Version 3.8.4.RELEASE
– Spring Boot: 1.5.4.RELEASE
– MySQL
– Hal Browser

II. Practice

The tutorial creates a SpringBoot project with 2 JPA entities {Student, Subject} which have Many-to-Many relationship. We use Spring Data Rest to build restfulAPIs for accessing MySQL data which are created by 2 entities. Then using HalBrowser to consume the rests.

Step to do:
– Create SpringBoot project
– Create Jpa entities
– Create Rest repositories
– Implement CommandLineRunner client
– Run and check results

spring data rest hal many to many - project structure

1. Create SpringBoot project

Using SpringToolSuite to create a SpringBoot project. Then add dependencies:

2. Create JPA entities

Create 2 JPA entities with Many-to-Many relationship {Student, Subject}:

– Student

– Subject

3. Create Rest repositories

Create 2 rest repositories {StudentRepository, SubjectRepository}:

– StudentRepository

– SubjectRepository

– Open application.properties file, configure spring.datasource:

4. Implement CommandLineRunner client

In main class of the SpringBoot project, we use CommandLineRunner to init Student and Subject objects, then using StudentRepository to store them in MySql database.

5. Run and check results

Build and Run the SpringBoot project with commandlines {mvn clean install, mvn spring-boot:run}.
The SpringBoot application creates 3 tables {student, subject, student_subject}:

– Make a request http://localhost:8080:

spring data rest hal many to many - first request

– Select all students:

spring data rest hal many to many - select all students

– Select all subjects:

spring data rest hal many to many - select all subjects

– Select all subjects of a student:

spring data rest hal many to many - select all subjects of a students

– Select all students a subject:

spring data rest hal many to many - select all students of a subject

III. Sourcecode

SpringRestDataManyToMany

By JavaSampleApproach | July 18, 2017.


Related Posts


Got Something To Say:

Your email address will not be published. Required fields are marked *

*