You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Charlin S <ch...@hotelhub.com> on 2024/04/24 07:00:32 UTC
Ignite 2.16 - Multiple query fields are associated with the same alias
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
Re: Ignite 2.16 - Multiple query fields are associated with the same alias
Posted by Charlin S <ch...@hotelhub.com>.
Hi,
Thank you for your email
Thanks and Regards
Charlin
On Wed, 24 Apr, 2024, 4:42 pm Pavel Tupitsyn, <pt...@apache.org> wrote:
> 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 <ch...@hotelhub.com> 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, <pt...@apache.org>
>> 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 <ch...@hotelhub.com>
>>> 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
>>>>
>>>>
>>>>
Re: Ignite 2.16 - Multiple query fields are associated with the same alias
Posted by Pavel Tupitsyn <pt...@apache.org>.
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 <ch...@hotelhub.com> 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, <pt...@apache.org>
> 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 <ch...@hotelhub.com>
>> 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
>>>
>>>
>>>
Re: Ignite 2.16 - Multiple query fields are associated with the same alias
Posted by Charlin S <ch...@hotelhub.com>.
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, <pt...@apache.org> 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 <ch...@hotelhub.com> 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
>>
>>
>>
Re: Ignite 2.16 - Multiple query fields are associated with the same alias
Posted by Pavel Tupitsyn <pt...@apache.org>.
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 <ch...@hotelhub.com> 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
>
>
>