Je reçois un ensemble de données de la base de données où la requête produit une répétition de données avec une valeur "spéciale" différente. Par exemple, l'utilisateur "A" peut être répété deux fois, avec trois valeurs "spéciales" différentes dans la "colonne spéciale". J'utilise un gestionnaire de rappel pour récupérer les données et les mettre dans une liste, maintenant en plus je veux que la colonne spéciale ait son propre rappel où pour chaque utilisateur la liste des spécialités sera stockée, donc les données de l'utilisateur ne seront pas être pris à plusieurs reprises et stocké dans la liste et je ne dois pas le filtrer manuellement. Quelqu'un peut-il me diriger vers une direction de réaliser ceci?Gestionnaires de rappel imbriqués?
Une autre façon d'y parvenir est de concaténer les résultats dans une chaîne elle-même, ce qui serait plus facile, mais la requête semble être complexe et désordonnée lorsque j'inclue les jointures.
Le code est ci-dessous
String query = getQuery(SPECIALS_REPORT_QUERY);
getJdbcTemplate().query(query, parameters, dataTypes, new RowCallbackHandler() {
@Override
public void processRow(ResultSet rs) throws SQLException {
SpecialsResultsSetDTO dto = new SpecialsResultsSetDTO();
dto.setRoomNo(rs.getString("ROOM_NO"));
dto.setGuestName(rs.getString("GUEST_NAME"));
dto.setNoOfAdults((rs.getInt("NO_OF_ADULTS")));
dto.setNoOfChildren(rs.getInt("NO_OF_CHILDREN"));
dto.setNoOfInfants(rs.getInt("NO_OF_INFANTS"));
dto.setMealPlanCode(rs.getString("MEAL_PLAN_CODE"));
dto.setArrivalDateTime(rs.getDate("ARRIVAL_DATE_TIME"));
dto.setDepartureDate(rs.getString("DEPARTURE_DATE"));
//there should be a callback handler or something to store the data to a list in the dto bean object (for the specials)
dtoList.add(dto);
}
});
Tous les conseils sur la résolution de ce problème serait utile
Cordialement, Milinda
Merci pour votre idée, la méthode a travaillé =) – MilindaD