[Ibatis] Column not found
	
	
		Bonjour,
Je travaille avec Websphère 5.1 et une base MySql.
je suis en train de tester une nouvelle requête assez simple avec "sqlMap" qui récupère un ou plusieurs enregistrements en lui passant un id et une date.
J'avais déjà fait une première requête getAll() qui fonctionne très bien et pour faire cette nouvelle requête je dois ajouter une propriété "dateCertifNir" dans le resultMap de mon fichier d'ordres SQL et apparemment ca coince, j'ai l'erreur quivante :
	Code:
	
Error 500: ; nested exception is: org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in fr/canam/rniam/ibatis/config/demandes-mysql.xml. --- The error occurred while applying a result map. --- Check the demandes.map. --- Check the result mapping for the 'dateCertifNir' property. --- Cause: java.sql.SQLException: Column 'date_certif_nir' not found. Caused by: java.sql.SQLException: Column 'date_certif_nir' not found.
 Voici mon fichier xml :
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<!-- Fichiers contenant les ordres SQL -->
<sqlMap>
<typeAlias alias="demandes.classe" type="fr.canam.rniam.entites.Demandes"/>
	<resultMap id="demandes.map" class="fr.canam.rniam.entites.Demandes">
		<result property="strTypeDemande" column="type_demande"/>
		<result property="strEtatDemande" column="etat_demande"/> 
		<result property="dateEmisDemande" column="date_demande"/>
		<result property="dateRecepReponse" column="date_reponse"/>
		<result property="strNir" column="nir_demande"/>
		<result property="dateCertifNir" column="date_certif_nir"/>
		<result property="strNom" column="nom_demande"/>
		<result property="strPrenom" column="prenom_demande"/>	
		<!--<result property="dateNaiss" column="date_naissance_demande"/>-->
	</resultMap>
	<!-- liste des demandes -->
	<select id="demandes.getAll" resultMap="demandes.map">
		SELECT TYPE_DEMANDE, ETAT_DEMANDE, DATE_DEMANDE, DATE_REPONSE, NIR_DEMANDE, NOM_DEMANDE, PRENOM_DEMANDE FROM DEMANDE
	</select>
	<!-- liste des demandes par Nir et dateCertif-->
	<select id="demandes.getDemandesNir" resultMap="demandes.map" parameterClass="demandes.classe" remapResults="true">
		SELECT TYPE_DEMANDE, ETAT_DEMANDE, DATE_DEMANDE, DATE_REPONSE, NIR_DEMANDE, NOM_DEMANDE, PRENOM_DEMANDE FROM DEMANDE WHERE NIR_DEMANDE=#strNir# AND DATE_CERTIF_NIR=#dateCertifNir#
	</select>
</sqlMap> | 
 La requête que je veux exécuter est demandes.getDemandesNir
Voici le code de ma méthode dans ma classe DaoImpl :
	Code:
	
| 12
 3
 4
 5
 6
 7
 
 | 	public Collection getDemandesNir(String strNir, Timestamp dateCertif) {
		// TODO Raccord de méthode auto-généré
		Demandes demandes = new Demandes();
		demandes.setStrNir(strNir);
		demandes.setDateCertifNir(dateCertif);
		return getSqlMapClientTemplate().queryForList("demandes.getDemandesNir",demandes);
	} | 
 et enfin mon objet métier demandes :
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 
 | public class Demandes {
 
	private String strTypeDemande;
	private String strEtatDemande;
	private Timestamp dateEmisDemande;
	private Timestamp dateRecepReponse;
	private Timestamp dateCertifNir;
	private Timestamp dateNaiss;
 
	private String strNir;
	private String strNom;
	private String strPrenom;
 
	public Demandes() {
	}
 
	public Demandes(
		String strTypeDemande,
		String strEtatDemande,
		Timestamp dateEmisDemande,
		Timestamp dateRecepReponse,
		String strNir,
		String strNom,
		String strPrenom
		){
		this.strTypeDemande = strTypeDemande;
		this.strEtatDemande = strEtatDemande;
		this.dateEmisDemande = dateEmisDemande;
		this.dateRecepReponse = dateRecepReponse;
		this.strNir = strNir;
		this.strNom = strNom;
		this.strPrenom = strPrenom;
	}
 
	/**
         * @return
         */
	public Timestamp getDateEmisDemande() {
		return dateEmisDemande;
	}
 
	/**
         * @return
         */
	public Timestamp getDateRecepReponse() {
		return dateRecepReponse;
	}
 
	/**
         * @return
         */
	public String getStrEtatDemande() {
		return strEtatDemande;
	}
 
	/**
         * @return
         */
	public String getStrNir() {
		return strNir;
	}
 
	/**
         * @return
         */
	public String getStrNom() {
		return strNom;
	}
 
	/**
         * @return
         */
	public String getStrPrenom() {
		return strPrenom;
	}
 
	/**
         * @return
         */
	public String getStrTypeDemande() {
		return strTypeDemande;
	}
 
	/**
         * @param timestamp
         */
	public void setDateEmisDemande(Timestamp timestamp) {
		dateEmisDemande = timestamp;
	}
 
	/**
         * @param timestamp
         */
	public void setDateRecepReponse(Timestamp timestamp) {
		dateRecepReponse = timestamp;
	}
 
	/**
         * @param string
         */
	public void setStrEtatDemande(String string) {
		strEtatDemande = string;
	}
 
	/**
         * @param string
         */
	public void setStrNir(String string) {
		strNir = string;
	}
 
	/**
         * @param string
         */
	public void setStrNom(String string) {
		strNom = string;
	}
 
	/**
         * @param string
         */
	public void setStrPrenom(String string) {
		strPrenom = string;
	}
 
	/**
         * @param string
         */
	public void setStrTypeDemande(String string) {
		strTypeDemande = string;
	}
 
	/**
         * @return
         */
	public Timestamp getDateCertifNir() {
		return dateCertifNir;
	}
 
	/**
         * @param timestamp
         */
	public void setDateCertifNir(Timestamp timestamp) {
		dateCertifNir = timestamp;
	}
 
	/**
         * @return
         */
	public Timestamp getDateNaiss() {
		return dateNaiss;
	}
 
	/**
         * @param timestamp
         */
	public void setDateNaiss(Timestamp timestamp) {
		dateNaiss = timestamp;
	}
 
	} | 
 Je précise que j'ai vérifié les concordances des noms avec la table "demande" et ca colle.