1
respuesta

Consulta

Disculpe, tengo un rato con este problema, supongo que es en CategoriaDao, en el método consultaPorNombre( String nombre), al utilizar getSingleResult me tira este error, pero no sé cómo solucionarlo. Les agradezco la ayuda

1 respuesta

Hola Roselyn,

¿Ha podido resolver el error? No estoy seguro de entender su pregunta. Por lo que entiendo, estás teniendo problemas con el método getSingleResult() en tu método consultaPorNombre(String nombre) en la clase CategoriaDao. Este error puede ser causado por varias razones, pero la más común es cuando tu consulta no devuelve un resultado único, es decir, cuando devuelve más de un resultado o ninguno.

Para solucionar esto, podrías intentar usar el método getResultList() en lugar de getSingleResult(). Este método devolverá una lista de resultados, incluso si la lista está vacía o tiene más de un elemento. Aquí te dejo un ejemplo de cómo podrías implementarlo:

public Categoria consultaPorNombre(String nombre) {
    TypedQuery<Categoria> query = em.createQuery("SELECT c FROM Categoria c WHERE c.nombre = :nombre", Categoria.class);
    query.setParameter("nombre", nombre);
    List<Categoria> resultados = query.getResultList();

    if (!resultados.isEmpty()) {
        return resultados.get(0); // Devuelve el primer resultado
    } else {
        return null; // O maneja la situación en la que no hay resultados
    }
}

Este código primero ejecuta la consulta y luego verifica si la lista de resultados está vacía. Si no está vacía, devuelve el primer resultado. Si está vacía, devuelve null.

Por supuesto, este es solo un ejemplo y deberías adaptarlo a tus necesidades específicas. Además, ten en cuenta que este código no maneja la situación en la que la consulta devuelve más de un resultado, lo que podría ser un problema si esperas que nombre sea único.

Espero que esto te ayude a resolver tu problema. Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios