Same thing. Fields get flattened for SQL, so you've got one column from
Employee and another from EmpInfo causing a conflict.

On Wed, Apr 24, 2024 at 2:06 PM Charlin S <[email protected]> wrote:

> Hi,
> Thank you for the email.
> What about EmpInfo? Main class and child class having EmpName field (error
> 1)
>
> Thanks and Regards,
> Charlin
>
>
> On Wed, 24 Apr, 2024, 4:25 pm Pavel Tupitsyn, <[email protected]>
> wrote:
>
>> Employee class has two fields with the same name:
>>
>>   [QuerySqlField]
>>   public string EMPCode { get; set; }
>>
>>   [QuerySqlField]
>>   public string EmpCode { get; set; }
>>
>>
>> Ignite 2.10 ignored this and used only one of those for SQL, which may
>> lead to subtle bugs. So we added this validation.
>>
>> You'll have to rename one of the fields, or override SQL field name in
>> the attribute:
>> [QuerySqlField(Name = "EMPCode2")]
>>
>> On Wed, Apr 24, 2024 at 10:01 AM Charlin S <[email protected]>
>> wrote:
>>
>>> Hi All,
>>> I am upgrading Ignite from 2.10 to 2.16 and getting Multiple query
>>> fields are associated with the same alias error for *EMPCode* and *EmpName,
>>> *which is working with Ignite 2.10. unable to create Employee cache.
>>>
>>> Error 1:
>>> System.Exception: IgniteException for chache ::  Employee
>>>  ---> Apache.Ignite.Core.Cache.CacheException: class
>>> org.apache.ignite.IgniteCheckedException: Multiple query fields are
>>> associated with the same alias [alias=EMPNAME]
>>>
>>> Error 2:
>>>   System.Exception: IgniteException for chache ::  Employee
>>>  ---> Apache.Ignite.Core.Cache.CacheException: class
>>> org.apache.ignite.IgniteCheckedException: Multiple query fields are
>>> associated with the same alias [alias=EMPCODE]
>>>
>>> Error 2 can be corrected by removing TmcCode property but why same error
>>> for EmpName?
>>>
>>> my class file
>>> Public class Employee: IBinarizable
>>> {
>>>         [QuerySqlField]
>>>         public string EMPCode { get; set; }
>>>         [QuerySqlField]
>>>         public string EmpCode { get; set; }
>>>         [QuerySqlField]
>>>         public string EmpName { get; set; }
>>>         [QuerySqlField]
>>>         public EmpInfo EmpInformation { get; set; }
>>>
>>>         public void WriteBinary(IBinaryWriter writer)
>>>         {
>>>             if (writer != null)
>>>             {
>>>                 writer.WriteString("empcode", EMPCode);
>>>                 writer.WriteString("empname",  EmpName );
>>>                 writer.WriteObject(" empInformation",  EmpInformation
>>> );
>>>             }
>>>         }
>>>          public void ReadBinary(IBinaryReader reader)
>>>         {
>>>             if (reader != null)
>>>             {
>>>                  EMPCode = reader.ReadString("empcode");
>>>                  EmpName = reader.ReadString("empname");
>>>                   EmpInformation     = reader.ReadString("
>>> empInformation");
>>>             }
>>>          }
>>>    }
>>>
>>>   public class EmpInfo : IBinarizable
>>>   {
>>>         [QuerySqlField]
>>>         public string EmpName { get; set; }
>>>         [QuerySqlField]
>>>         public string EmpAddress{ get; set; }
>>>
>>>        public void WriteBinary(IBinaryWriter writer)
>>>         {
>>>             if (writer != null)
>>>             {
>>>                 writer.WriteString(" empname  ",  EmpName   );
>>>                 writer.WriteString(" empaddress  ",   EmpAddress  );
>>>             }
>>>         }
>>>          public void ReadBinary(IBinaryReader reader)
>>>         {
>>>             if (reader != null)
>>>             {
>>>                   EmpName   = reader.ReadString(" empname  ");
>>>                   EmpAddress  = reader.ReadString(" empaddress  ");
>>>             }
>>>          }
>>>   }
>>>
>>> Thanks & Regards,
>>> Charlin
>>>
>>>
>>>

Reply via email to