Type de retour pour jdbcTemplate.queryForList(sql, objet, classType)
Je suis de l'exécution d'une requête nommée à l'aide jdbcTemplate.queryForList de la manière suivante:
List<Conversation> conversations = jdbcTemplate.queryForList(
SELECT_ALL_CONVERSATIONS_SQL_FULL,
new Object[] {userId, dateFrom, dateTo});
La requête SQL est:
private final String SELECT_ALL_CONVERSATIONS_SQL_FULL =
"select conversation.conversationID, conversation.room, " +
"conversation.isExternal, conversation.startDate, " +
"conversation.lastActivity, conversation.messageCount " +
"from openfire.ofconversation conversation " +
"WHERE conversation.conversationid IN " +
"(SELECT conversation.conversationID " +
"FROM openfire.ofconversation conversation, " +
"openfire.ofconparticipant participant " +
"WHERE conversation.conversationID = participant.conversationID " +
"AND participant.bareJID LIKE ? " +
"AND conversation.startDate between ? AND ?)";
Mais lors de l'extraction du contenu de la liste de la manière suivante:
for (Conversation conversation : conversations) {
builder.append(conversation.getId());
builder.append(",");
builder.append(conversation.getRoom());
builder.append(",");
builder.append(conversation.getIsExternal());
builder.append(",");
builder.append(conversation.getStartDate());
builder.append(",");
builder.append(conversation.getEndDate());
builder.append(",");
builder.append(conversation.getMsgCount());
out.write(builder.toString());
}
J'obtiens une erreur:
java.util.LinkedHashMap cannot be cast to net.org.messagehistory.model.Conversation
Comment puis-je convertir ce linkedMap dans l'Objet désiré??
Grâce
OriginalL'auteur Global Dictator | 2011-08-02
Vous devez vous connecter pour publier un commentaire.
Afin de cartographier l'ensemble de résultats de la requête à une classe Java, vous serez probablement mieux (en supposant que vous êtes intéressés par l'utilisation de l'objet, d'ailleurs) avec un RowMapper pour convertir les colonnes du jeu de résultats dans une instance d'objet.
Voir Section 12.2.1.1 de l'accès aux Données avec JDBC sur la façon d'utiliser une ligne de mappeur.
En bref, vous aurez besoin de quelque chose comme:
OriginalL'auteur beny23
Une solution complète pour JdbcTemplate, NamedParameterJdbcTemplate avec ou sans RowMapper Exemple.
//Créer une table des Employés
=======================================================================
//Employee.java
=========================================================================
//EmployeeDao.java
================================================================
//MyrowMapper.java
==========================================================
//MyPreparedStatement.java
=====================================================================
//Test.java
==================================================================
//applicationContext.xml
===================================================================
OriginalL'auteur Rohit
OriginalL'auteur srinivas
queryForList renvoie une Liste de LinkedHashMap objets.
Vous avez besoin de jeter d'abord comme ceci:
OriginalL'auteur 11101101b