[ http://issues.apache.org/jira/browse/IBATISNET-166?page=all ]
     
Gilles Bayon closed IBATISNET-166:
----------------------------------

    Fix Version: DataMapper 1.5
     Resolution: Duplicate
      Assign To: Gilles Bayon

Duplicate issue with IBATISNET-141
Already fixed

> "Composite Keys or Multiple Complex Parameters Properties" - incorrect 
> parsing of column properties
> ---------------------------------------------------------------------------------------------------
>
>          Key: IBATISNET-166
>          URL: http://issues.apache.org/jira/browse/IBATISNET-166
>      Project: iBatis for .NET
>         Type: Bug

>   Components: DataMapper
>     Versions: DataMapper 1.3
>  Environment: Microsoft Windows Server 2003, DotNetFramework 1.1
>     Reporter: cristian manea
>     Assignee: Gilles Bayon
>      Fix For: DataMapper 1.5

>
> The pdf documentation, Chapter 3, 3.5.13. Composite Keys or Multiple Complex 
> Parameters Properties, says:
> "However, there is an alternate syntax that allows multiple columns to be 
> passed to the related mapped statement. This comes in handy for situations 
> where a composite key relationship exists, or even if you simply want to use 
> a parameter of some name other than #value#. The alternate syntax for the 
> column attribute is simply {param1=column1, param2=column2, ..., 
> paramN=columnN}."
> Instead I found there will be ALWAYS the error: "columnN}" while getting the 
> value from the query; i have downloaded the source and I have identified the 
> point where the error is made: the split of the column does not consider the 
> fact the the } and { are part of the string. 
> It will work only if we don't use the { and } when defining the column 
> property in the sqlmap definition (but in this way, the specification for the 
> column property is not followed). It olny works by not following the 
> specifications :) :).      
>        ---  column="idlabel=desc_fk,idlanguage=id_language"  ----
> Source code in "MappedStatement.cs", project "IbatisNet.DataMapper" where I 
> have identified the error:
>  private void SetObjectProperty(RequestScope request, ResultMap resultMap, 
> ResultProperty mapping, ref object target, IDataReader reader) , 
> ...............................
>                               if (paramString.IndexOf(',')>0 || 
> paramString.IndexOf('=')>0) // composite parameters key
>                               {
>                                       IDictionary keyMap = new Hashtable();
>                                       keys = keyMap;
>                                       // define which character is seperating 
> fields
>                                       char[] splitter  = {'=',','};
>                                       string[] paramTab = 
> paramString.Split(splitter);
>                                       if (paramTab.Length % 2 != 0) 
>                                       {
>                                               throw new 
> DataMapperException("Invalid composite key string format in 
> '"+mapping.PropertyName+". It must be: 
> property1=column1,property2=column2,..."); 
>                                       }
>                                       IEnumerator enumerator = 
> paramTab.GetEnumerator();
>                                       while (!wasNull && 
> enumerator.MoveNext()) 
>                                       {
>                                               string hashKey = 
> ((string)enumerator.Current).Trim();
>                                               enumerator.MoveNext();
>                                               object hashValue = 
> reader.GetValue( reader.GetOrdinal(((string)enumerator.Current).Trim()) );
>                                               keyMap.Add(hashKey, hashValue );
>                                               wasNull = (hashValue == 
> DBNull.Value);
>                                       }
>                               }
> ..................................
> Since i am not participating at the project, I cannot modify the source.
> Regards.
> Cristian Manea
> www.atypiqsoftware.ro

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to