http://issues.apache.org/jira/browse/IBATISNET-114
--- Ron Grabowski <[EMAIL PROTECTED]> wrote: > 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. > > > > > >

