Ejemplos JPA

package com.trifulcas.SpringBootBiblioteca.repository;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;

import com.trifulcas.SpringBootBiblioteca.model.Libro;

public interface LibroRepository extends JpaRepository<Libro, Integer> {

	List<Libro> findByPaginasBetweenOrderByPaginasAsc(Integer a, Integer b);
}

package com.trifulcas.SpringBootBiblioteca.repository;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;

import com.trifulcas.SpringBootBiblioteca.model.Genero;

public interface GeneroRepository extends JpaRepository<Genero, Integer> {
// Dentro del repositorio podemos crear consultas de una manera 'mágica'
	List<Genero> findByNombreContaining(String nombre);
}

En el controlador:

	@GetMapping("")
	public List<Genero> getAll(@RequestParam(required=false) String nombre) {
		try {
			if (nombre==null) {
				return generoRepository.findAll();
			}else {
				return generoRepository.findByNombreContaining(nombre);
			}
			
		} catch (Exception ex) {
			System.out.println(ex.getMessage());
			return null;
		}
	}

Url:

http://localhost:8080/libro?nombre=fi

@GetMapping("")
	public List<Libro> getAll(@RequestParam(required=false) Integer min,@RequestParam(required=false) Integer max) {
		try {
			if (min==null || max==null) {
				return libroRepository.findAll();
			}else {
				return libroRepository.findByPaginasBetweenOrderByPaginasAsc(min, max);
			}
			
		} catch (Exception ex) {
			System.out.println(ex.getMessage());
			return null;
		}
	}

Otro ejemplo, buscar los libros de un autor determinado

En el repository:

	List<Libro> findByAutoresIdautor(Integer id);

En el controlador, creo un endpoint nuevo

@GetMapping("/autor/{id}")
	public List<Libro> getByIdAutor(@PathVariable int id) {
		System.out.println(id);

		try {
			return libroRepository.findByAutoresIdautor(id);
		} catch (Exception ex) {
			System.out.println(ex.getMessage());
			return null;
		}
	}

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos