This is the query I have written:
x
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;
This is the output I am getting from the database:
id | versions |
---|---|
101 | 0.0 |
101 | 1.0 |
101 | 2.0 |
101 | 3.0 |
In my application, I am storing this result in
Map<List<String>, List<String>>
but it gives an error saying “query did not return a unique result”
How can I store this result? which data structure could I use?
Advertisement
Answer
Try the below method:
void test2(ResultSet resultSet) throws SQLException {
HashMap<String, List<String>> stringListHashMap = new HashMap<>();
while (resultSet.next()){
String id = resultSet.getString("id");
String version = resultSet.getString("versions");
if (stringListHashMap.containsKey(id)){ // check if the id is already available in the map
stringListHashMap.get(id).add(version); //if id is available get the list and add to the current version
} else {
// if not available create a new list
// add the current version to the list
// then put the id and list to the map
List<String> versions = new ArrayList<>();
versions.add(version);
stringListHashMap.put(id,versions);
}
}
}