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 en el aula


```@Entity
@Table(name ="episodios")
public class Episodio {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private Integer numeroTemporada;
    private String titulo;
    private Integer numeroEpisodio;
    private Double evaluacion;
    private LocalDate fechaDeLanzamiento;
    @ManyToOne
    private Serie serie;

    public Episodio(){
    }

    public Episodio(Integer numeroTemporada, DatosEpisodio datosEpisodio) {
        this.numeroTemporada = numeroTemporada;
        this.titulo = datosEpisodio.titulo();
        this.numeroEpisodio = datosEpisodio.numero();
        try {
            this.evaluacion = Double.valueOf(datosEpisodio.evaluacion());
        } catch (NumberFormatException e) {
            this.evaluacion = 0.0;
        }
        try {
            this.fechaDeLanzamiento = LocalDate.parse(datosEpisodio.fechaDeLanzamiento());
        } catch (DateTimeParseException e) {
            this.fechaDeLanzamiento = null;
        }
    }

    public Serie getSerie() {
        return serie;
    }

    public void setSerie(Serie serie) {
        this.serie = serie;
    }

    @Override
    public String toString() {
        return  "numeroTemporada=" + numeroTemporada +
                ", titulo='" + titulo + '\'' +
                ", numeroEpisodio=" + numeroEpisodio +
                ", evaluacion=" + evaluacion +
                ", fechaDeLanzamiento=" + fechaDeLanzamiento;
    }
}

1 respuesta

Hola Justin,

¡Gracias por compartir tu código! Parece que estás trabajando con una entidad Episodio en un proyecto utilizando Spring Data JPA. Tu clase está bien estructurada, pero si estás buscando replicar algo que hicimos en clase, aquí hay algunas sugerencias generales que podrían ayudarte:

  1. Asegúrate de tener un repositorio para la entidad: Si no lo has hecho ya, necesitarás un repositorio para manejar las operaciones CRUD de la entidad Episodio. Podrías crear una interfaz que extienda JpaRepository como esta:

    import org.springframework.data.jpa.repository.JpaRepository;
    
    public interface EpisodioRepository extends JpaRepository<Episodio, Long> {
        // Puedes agregar métodos personalizados de consulta aquí
    }
    
  2. Consulta personalizada: Si necesitas realizar consultas específicas, puedes definir métodos en tu repositorio. Por ejemplo, si quisieras buscar episodios por número de temporada, podrías agregar:

    List<Episodio> findByNumeroTemporada(Integer numeroTemporada);
    
  3. Servicio para manejar la lógica de negocio: Es una buena práctica tener un servicio que maneje la lógica de negocio. Podrías tener un servicio EpisodioService que use el repositorio para interactuar con la base de datos.

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service
    public class EpisodioService {
    
        @Autowired
        private EpisodioRepository episodioRepository;
    
        public List<Episodio> obtenerEpisodiosPorTemporada(Integer numeroTemporada) {
            return episodioRepository.findByNumeroTemporada(numeroTemporada);
        }
    
        // Otros métodos de servicio
    }
    
  4. Controlador para manejar las solicitudes HTTP: Finalmente, necesitarás un controlador para manejar las solicitudes HTTP y devolver respuestas adecuadas.

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.List;
    
    @RestController
    @RequestMapping("/episodios")
    public class EpisodioController {
    
        @Autowired
        private EpisodioService episodioService;
    
        @GetMapping("/temporada/{numeroTemporada}")
        public List<Episodio> obtenerEpisodiosPorTemporada(@PathVariable Integer numeroTemporada) {
            return episodioService.obtenerEpisodiosPorTemporada(numeroTemporada);
        }
    
        // Otros endpoints
    }
    

Espero que estas sugerencias te sean útiles para avanzar en tu proyecto. ¡Espero haber ayudado y buenos estudios!