Create Project: relationships_onetomany (add Spring Boot Starters from the table)
Edit FIle: application.properties (specify H2 DB name & enable H2 Web Console)
Create Package: entities (inside main package)
– Create Class: Author.java (inside package entities)
– Create Class: Book.java (inside package entities)
Create Package: repositories (inside main package)
– Create Interface: AuthorRepository.java (inside package repositories)
Create Package: controllers (inside main package)
– Create Class: MyController.java (inside package controllers)
application.properties
spring.datasource.url = jdbc:h2:mem:testdb
spring.h2.console.enabled = true
Author.java
package com.ivoronline.relationships_onetomany.entities;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.OneToMany;
import javax.persistence.CascadeType;
import java.util.Set;
@Entity
public class Author {
//PRIMARY KEY
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer id;
//RELATIONSHIPS
@OneToMany(cascade = CascadeType.ALL)
public Set<Book> books;
//DATA
public String name;
public Integer age;
}
AuthorRepository.java
package com.ivoronline.relationships_onetomany.repositories;
import com.ivoronline.relationships_onetomany.entities.Author;
import org.springframework.data.repository.CrudRepository;
public interface AuthorRepository extends CrudRepository<Author, Integer> { }