For example, I create the tables named "Employee" and "Company",
both has the same name column, "name".See below.
Employee = new GearsORM.Model({
name: "Employee",
fields: {
name: new GearsORM.Fields.String({notNull: true}),
company: new GearsORM.Fields.OneToMany({related: "Company"})
}
});
Company = new GearsORM.Model({
name: "Company",
fields: {
name: new GearsORM.Fields.String({notNull: true}),
employees: new GearsORM.Fields.ManyToOne({related: "Employee"})
}
});
And I added data to these tables.
var sony = new Company({name: "SONY"});
sony.save();
new Employee({name:"Someone", company: sony.rowid}).save();
Last, I fetch employees and show it's company name.
I expect the "Someone"'s company name is "SONY",
but exactly, I got "Someone"...
var employee = Employee.select().getOne();
alert(employee.company.name); <-- "Someone" displayed. "SONY" expected.
SQL generated by GearsORM is below.
SELECT Employee.rowid,Employee.name,Company.name
FROM Employee
LEFT JOIN Company ON Company.rowid = Employee.Company_id
Probrem's reason is probably "Employee.name" and "Company.name"
return same column name in result set ("name").