Praticar os principais conceitos de mapeamento objeto relacional (ORM) usando o Spring Data JPA. Para isso, uma API RESTful foi desenvolvida com ênfase na modelagem de suas entidades, no domínio de uma academia de ginástica.
- IDE IntelliJ
- Java 11
- Maven
- Spring Web
- MySQL Driver
- Spring Boot DevTools
- Spring Data JPA
- Hibernate Validator
- Lombok
- Postman
@Entity Usada para especificar que a classe anotada atualmente representa um tipo de entidade.
@Table Usada para especificar a tabela principal da entidade atualmente anotada.
@Id Especifica o identificador da entidade. Uma entidade deve sempre ter um atributo identificado.
@GeneratedValue Especifica que o valor do identificador de entidade é gerado automaticamente.
@Column Usada para especificar o mapeamento entre um atributo de entidade básico e a coluna da tabela de banco de dados.
@JoinColumn Usada para especificar a coluna FOREIGN KEY. Indica que a entidade é a responsável pelo relacionamento.
@OneToMany Usada para especificar um relacionamento de banco de dados um-para-muitos.
@OneToOne Usada para especificar um relacionamento de banco de dados um-para-um.
@ManyToOne Usada para especificar um relacionamento de banco de dados muitos-para-um.
cascade Realizar operações em cascata só faz sentido em relacionamentos Pai - Filho.
mappedBy Indica qual é o lado inverso ou não dominante da relação.
- Para alunos
http://localhost:8080/alunos
http://localhost:8080/alunos
{
"nome": "Fulano Ciclano",
"cpf": "023.234.456-87",
"bairro": "Desenvolvedor FullStack",
"dataDeNascimento": "01/01/1980"
}
http://localhost:8080/alunos/id
{
"nome": "Ciclano Fulano",
"bairro": "Rua Brasil",
"dataDeNascimento": "01/01/1850"
}
http://localhost:8080/alunos/id
- Para avaliações
http://localhost:8080/avaliacoes
http://localhost:8080/alunos
{
"alunoId": 1,
"peso": 80.0,
"altura": 190.0
}
http://localhost:8080/avaliacoes/idAvaliacao
{
"alunoId": 1,
"peso": 82.3,
"altura": 190.0
}