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