Spring Data é um módulo do Spring para utilizar JPA.

Configurações do Banco de dados

As configurações do Banco de dados devem ser declaradas no arquivo application.properties

Untitled

Neste caso, estamos utilizando o banco em memória H2.

Também é possível criar o arquivo data.sql para alimentar o banco logo quando a aplicação for iniciada.

INSERT INTO USUARIO(nome, email, senha) VALUES('Aluno','[email protected]','12345');

INSERT INTO CURSO(nome, categoria) VALUES('Spring Boot', 'Programacao');
INSERT INTO CURSO(nome, categoria) VALUES('HTML 5', 'Front-end');

INSERT INTO TOPICO(titulo, mensagem, data_criacao, status, autor_id, curso_id) VALUES('Dúvida', 'Erro ao criar projeto', '2019-05-05 18:00:00', 'NAO_RESPONDIDO', 1, 1);
INSERT INTO TOPICO(titulo, mensagem, data_criacao, status, autor_id, curso_id) VALUES('Dúvida 2', 'Projeto não compila', '2019-05-05 19:00:00', 'NAO_RESPONDIDO', 1, 1);
INSERT INTO TOPICO(titulo, mensagem, data_criacao, status, autor_id, curso_id) VALUES('Dúvida 3', 'Tag HTML', '2019-05-05 20:00:00', 'NAO_RESPONDIDO', 1, 2);

Mapeando as classes modelos

Para o JPA gerar o banco de dados, é necessário mapear as classes modelo com as anotações fornecidas por ele.

Untitled

Untitled

Untitled

Untitled

Repository

É um padrão que substituí o uso de DAOs.

Um repository é uma interface que herda interface JpaRepository. Desse modo, o repository herda todos os métodos de JpaRepository, que facilitam o uso de banco de dados, pois fornece vários métodos de manipulação básica de dados.

Repository TopicoRepository

Repository TopicoRepository

Para utilizar um repository é necessário fazer Injeção de Dependência através da anotação @Autowired e a sua Entidade deve ter um construtor vazio para que o Spring consiga enxergar-lá.

Uso do repository

Uso do repository