I have tables for users, groups, and roles, and I have a table to join all three. I had to enforce the field name on the join table, which solved most of my errors. However, I still have one.
Despite having explicitly set the column name in my join model, when I execute
User.find({ where: {google: profile.sub},
include: [ { model: UserXGroupXRole, include: [ Group, Role ] } ] })
The following sql is generated
SELECT "User".*, "UserXGroupXRoles"."id" AS "UserXGroupXRoles.id", "UserXGroupXRoles"."userId" AS "UserXGroupXRoles.userId", "UserXGroupXRoles"."groupId" AS "UserXGroupXRoles.groupId", "UserXGroupXRoles"."roleId" AS "UserXGroupXRoles.roleId", "UserXGroupXRoles"."createdAt" AS "UserXGroupXRoles.createdAt", "UserXGroupXRoles"."updatedAt" AS "UserXGroupXRoles.updatedAt", "UserXGroupXRoles"."RoleId" AS "UserXGroupXRoles.RoleId", "UserXGroupXRoles"."UserId" AS "UserXGroupXRoles.UserId", "UserXGroupXRoles.Group"."id" AS "UserXGroupXRoles.Group.id", "UserXGroupXRoles.Group"."name" AS "UserXGroupXRoles.Group.name", "UserXGroupXRoles.Group"."createdAt" AS "UserXGroupXRoles.Group.createdAt", "UserXGroupXRoles.Group"."updatedAt" AS "UserXGroupXRoles.Group.updatedAt", "UserXGroupXRoles.Role"."id" AS "UserXGroupXRoles.Role.id", "UserXGroupXRoles.Role"."name" AS "UserXGroupXRoles.Role.name", "UserXGroupXRoles.Role"."createdAt" AS "UserXGroupXRoles.Role.createdAt", "UserXGroupXRoles.Role"."updatedAt" AS "UserXGroupXRoles.Role.updatedAt"
FROM (SELECT "User"."id", "User"."name", "User"."dateOfBirth", "User"."email", "User"."phone", "User"."google", "User"."createdAt", "User"."updatedAt" FROM "user" AS "User" WHERE "User"."google" = '.....' LIMIT 1) AS "User"
LEFT OUTER JOIN "userXgroupXrole" AS "UserXGroupXRoles" ON "User"."id" = "UserXGroupXRoles"."UserId"
LEFT OUTER JOIN "group" AS "UserXGroupXRoles.Group" ON "UserXGroupXRoles"."id" = "UserXGroupXRoles.Group"."id"
LEFT OUTER JOIN "role" AS "UserXGroupXRoles.Role" ON "UserXGroupXRoles"."id" = "UserXGroupXRoles.Role"."id";
The problem is "UserXGroupXRoles"."UserId", which for some reason is using the wrong case for userId.
How can I make this camel case to mach the field name?
By the way, if there is some default convention for me to abide by, I'll gladly use it.
-Josh