This sounds similiar to ibatis Java's remapResults="true" setting. Any chance you could compile in Debug mode so we can get the line number of the exception? I suppose I could write my own test case...
--- [EMAIL PROTECTED] wrote: > > Hi, > > I have a problem with this statement : I use a dynamic query to build > the > list of fields to retreive (BOOKDATA, BDIDATA,OTHERDATA are large > data BLOB > so i dont want to retreive them every time). > > <select id="ExtractPnlBetweenTwoDates" parameterClass > ="PnlXmlCacheTwoDatesEntity" resultClas="PnlXmlCacheEntity"> > SELECT ID, ITEM, REPORTDATE, CURRENCY, MARKETDATASOURCE, VALIDATED, > CREATION > <dynamic> > <isEqual property="ExtractBookData" compareValue="true" > prepend > =","> > BOOKDATA > </isEqual> > <isEqual property="ExtractBdiData" compareValue="true" > prepend > =","> > BDIDATA > </isEqual> > <isEqual property="ExtractOtherData" compareValue="true" > prepend=","> > OTHERDATA > </isEqual> > </dynamic> > FROM PNL_XMLCACHE > </select> > > I executed it with all properties of the parameterClass > (ExtractBookData, > ExtractBookData, ExtractOtherData) set to true : it worked propoerly. > I > executed it a second time, with all properties of the parameterClass > set to > false, and the error below occured : > Primo.Application: Cannot extract Pnl Xml Data > System.IndexOutOfRangeException: OTHERDATA > at System.Data.OracleClient.FieldNameLookup.GetOrdinal(String > fieldName) > at System.Data.OracleClient.OracleDataReader.GetOrdinal(String > name) > at > IBatisNet.DataMapper.TypeHandlers.ByteArrayTypeHandler.GetValueByName(ResultProperty > mapping, IDataReader dataReader) > at > IBatisNet.DataMapper.Configuration.ResultMapping.ResultProperty.GetDataBaseValue(IDataReader > dataReader) > at > IBatisNet.DataMapper.MappedStatements.ReaderAutoMapper.AutoMapReader(IDataReader > reader, Object& resultObject) > at > IBatisNet.DataMapper.MappedStatements.MappedStatement.AutoMapReader(IDataReader > reader, Object& resultObject) > at > IBatisNet.DataMapper.MappedStatements.MappedStatement.ApplyResultMap(RequestScope > request, IDataReader reader, Object resultObject) > at > IBatisNet.DataMapper.MappedStatements.MappedStatement.RunQueryForList(RequestScope > request, IDalSession session, Object parameterObject, Int32 > skipResults, > Int32 maxResults, RowDelegate rowDelegate) > at > IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForList(IDalSession > session, Object parameterObject, Int32 skipResults, Int32 > maxResults) > at > IBatisNet.DataMapper.MappedStatements.MappedStatement.ExecuteQueryForList(IDalSession > session, Object parameterObject) > at IBatisNet.DataMapper.SqlMapper.QueryForList(String > statementName, > Object parameterObject) > at > Primo.ReportingServices.PnlXmlCache.PnlXmlCacheManager.SelectData(String[] > items, DateTime dateFrom, DateTime dateTo, String currency, String > marketDataSource, Boolean validatedOnly, EDataExtract > choiceExtractBetweenTwoDates) > > Of course, I checked SQL statements are generated properly. By > looking at > the source code, it guess the guilty is the object ReaderAutoMapper . > (I > assume this object act as a simple resultmap that map sql fields to > resultClass properties with the same name) It seems cached for each > statement. so the first one, created with all fields , is used the > second > time => Exception : OTHERDATA was not retrieved > > So, Am I right with my supposition ? Can we consider it as a bug ? > Is there a more smart solution to achieve what I want to do ? > > Thanks And Regards > Nicolas > > PS : I use version from SVN get on september 2nd > > > This message and any attachments (the "message") is > intended solely for the addressees and is confidential. > If you receive this message in error, please delete it and > immediately notify the sender. Any use not in accord with > its purpose, any dissemination or disclosure, either whole > or partial, is prohibited except formal approval. The internet > can not guarantee the integrity of this message. > BNP PARIBAS (and its subsidiaries) shall (will) not > therefore be liable for the message if modified. > > --------------------------------------------- > > Ce message et toutes les pieces jointes (ci-apres le > "message") sont etablis a l'intention exclusive de ses > destinataires et sont confidentiels. Si vous recevez ce > message par erreur, merci de le detruire et d'en avertir > immediatement l'expediteur. Toute utilisation de ce > message non conforme a sa destination, toute diffusion > ou toute publication, totale ou partielle, est interdite, sauf > autorisation expresse. L'internet ne permettant pas > d'assurer l'integrite de ce message, BNP PARIBAS (et ses > filiales) decline(nt) toute responsabilite au titre de ce > message, dans l'hypothese ou il aurait ete modifie. > >

