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.
> > 
> > 
> 
> 

Reply via email to