Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haga lo que hicimos: realizando búsquedas con consultas derivadas

“Categoria.java”

package com.aluracursos.screenmatch.model;

public enum Categoria {
ACCION("Action", "Acción"),
ROMANCE("Romance", "Romance"),
COMEDIA("Comedy", "Comedia"),
DRAMA("Drama", "Drama"),
CRIMEN("Crime", "Crimen");
private String categoriaOmdb;
private String categoriaEspanol;
Categoria(String categoriaOmdb, String categoriaEspanol){
this.categoriaOmdb = categoriaOmdb;
this.categoriaEspanol = categoriaEspanol;

}
public static Categoria fromString(String text) {
    for (Categoria categoria : Categoria.values()) {
        if (categoria.categoriaOmdb.equalsIgnoreCase(text)) {
            return categoria;
        }
    }
    throw new IllegalArgumentException("Ninguna categoria encontrada: " + text);
}
public static Categoria fromEspanol(String text) {
    for (Categoria categoria : Categoria.values()) {
        if (categoria.categoriaEspanol.equalsIgnoreCase(text)) {
            return categoria;
        }
    }
    throw new IllegalArgumentException("Ninguna categoria encontrada: " + text);
}

}

1 respuesta

Hola Yolima, espero que estés bien

Parece que estás trabajando con la enumeración Categoria en tu proyecto de Spring Data JPA y quieres realizar búsquedas con consultas derivadas. En el contexto de Spring Data JPA, las consultas derivadas se construyen a partir de los nombres de los métodos en tus repositorios.

Si tienes una entidad que incluye un campo de tipo Categoria, podrías crear un método en tu repositorio para buscar entidades basadas en este campo. Supongamos que tienes una entidad Serie que tiene un campo categoria de tipo Categoria. En tu interfaz SerieRepository, podrías definir un método como este:

import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;

public interface SerieRepository extends JpaRepository<Serie, Long> {
    List<Serie> findByCategoria(Categoria categoria);
}

Con este método, Spring Data JPA generará automáticamente una consulta para buscar todas las series que coincidan con la categoría especificada.

Por ejemplo, si deseas buscar todas las series de acción, podrías llamar a este método de la siguiente manera:

Categoria categoriaAccion = Categoria.fromEspanol("Acción");
List<Serie> seriesDeAccion = serieRepository.findByCategoria(categoriaAccion);

Recuerda que los métodos de consulta derivados son sensibles al nombre del método, así que asegúrate de que el nombre del método refleje exactamente el campo por el cual deseas buscar.

Espero que esta explicación te sea útil para continuar con tu ejercicio. ¡Espero haber ayudado y buenos estudios!