es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La consulta no arrojó un resultado único.

Esta es la consulta que he escrito:

select c.id, CONCAT(c.major_version, '.', c.minor_version) as versions
from event_ids c
where c_id in ('101') group by c_id, major_version, minor_version;

Este es el resultado que obtengo de la base de datos:

|id  | versions|
|----|-------- | 
|101 | 0.0     | 
|101 | 1.0     | 
|101 | 2.0     | 
|101 | 3.0     |

En mi aplicación, estoy almacenando este resultado en un Map<><string>, List<string>>, pero me da un error que dice “la consulta no devolvió un resultado único”.

¿Cómo puedo almacenar este resultado? ¿Qué estructura de datos podría usar?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error que estás recibiendo sugiere que la consulta está devolviendo múltiples filas para el mismo id. Una posible solución es cambiar la clave del Map de List a String, utilizando el valor del id como clave. De esta manera, cada entrada del Map representa un id único, con una Lista de versiones como valor.

    Puedes utilizar un HashMap<string,></string,>> para almacenar este resultado. Aquí tienes un ejemplo de código:

    HashMap<string,></string,><string>> versionsMap = new HashMap<>();
    
    while(resultSet.next()) {
        String id = resultSet.getString("id");
        String version = resultSet.getString("versions");
    
        // Comprobar si el map ya contiene este id
        if(versionsMap.containsKey(id)) {
            versionsMap.get(id).add(version);
        } else {
            List<string> versions = new ArrayList<>();
            versions.add(version);
            versionsMap.put(id, versions);
        }
    }
    

    Este código recorre el ResultSet y añade cada id y versión al Map. Si un id ya existe en el Map, la nueva versión se añade a la Lista existente de versiones. De lo contrario, se crea una nueva entrada con una Lista que contiene la versión actual.

    Este enfoque maneja la posibilidad de múltiples versiones para el mismo id, al mismo tiempo que te permite recuperar fácilmente todas las versiones de un id dado utilizando Map.get(id).

Comments are closed.