DDC-1908: Symfony 2 Doctrine join tables error #2406

Closed
opened 2026-01-22 13:51:53 +01:00 by admin · 5 comments
Owner

Originally created by @doctrinebot on GitHub (Jul 5, 2012).

Originally assigned to: @beberlei on GitHub.

Jira issue originally created by user cfyzz:

Hello developers of Doctrine. I appreiate your work on a such complicated project. So seems I'found a bug in Doctrine in generating SQL
I had written this issue on Symfony forum but noone is answering, so maybe I've found the bug of Doctrine or FOSUserBundle
I'm using Symfony 2.0.12, so I've installed as git submodules FOSUserBundle, created User Entity with one-to-one relationship with Company Entity, here goes the code:

<?php

namespace AV\TradeBundle\Entity;

use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/****

    @ORM\Entity

    @ORM\Table(name="fos_user")
    /
    class User extends BaseUser
    {
    /*
        @ORM\Id
        @ORM\Column(type="integer")
        @ORM\GeneratedValue(strategy="AUTO") */ protected $id;

    /****
        @var company *
        @ORM\OneToOne(targetEntity="Companies", mappedBy="user") ** **/ private $company;

    public function construct()
    {
    parent::construct();
    // your own logic
    }

    public function getCompany() {
    return $this->company;
    }

    public function setCompany($company) {
    $this->company = $company;
    }
    }

and piece of Company Entity:

<?php
/****
* @var user
*
* @ORM\OneToOne(targetEntity="user", inversedBy="company")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;

When creating fixtures I'm using such method (all references are set, and I have checked for foreign keys in DB - everything is fine)
$this->container->get('fos_user.user_manager')->createUser($user);
When I'm trying to login I see such error:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 't46.id' in 'on clause'

The whole SELECT statement that I found in logs sounds like this one:

SELECT t0.username AS username1, t0.username*canonical AS username_canonical2, t0.email AS email3, t0.email_canonical AS email*canonical4, t0.enabled AS enabled5,
 t0.salt AS salt6, t0.password AS password7, t0.last*login AS last_login8, t0.locked AS locked9, t0.expired AS expired10, t0.expires_at AS expires*at11, 
t0.confirmation*token AS confirmation_token12, t0.password_requested_at AS password_requested_at13, t0.roles AS roles14, t0.credentials_expired AS credentials*expired15,
 t0.credentials*expire_at AS credentials_expire_at16, t0.id AS id17, t18.id AS id19, t18.egrpou AS egrpou20, t18.business_form AS business*form21, t18.title AS title22, 
t18.phone*code AS phone_code23, t18.phone_country_code AS phone_country_code24, t18.phone AS phone25, t18.fax_code AS fax*code26, 
t18.fax*country_code AS fax_country_code27, t18.fax AS fax28, t18.website AS website29, t18.fio AS fio30, t18.birthday AS birthday31, t18.firm_created AS firm*created32, 
t18.employees*count AS employees_count33, t18.logo AS logo34, t18.zip AS zip35, t18.street AS street36, t18.position AS position37, t18.thumb_logo AS thumb*logo38, 
t18.description AS description39, t18.created*at AS created_at40, t18.email AS email41, t18.cities_id AS cities_id42, t18.regions_id AS regions_id43, t18.countries_id AS countries*id44,
 t18.user*id AS user_id45 FROM fos_user t0 LEFT JOIN companies t18 ON t18.user_id = t46.id WHERE t0.username*canonical = ? (["cfyzz"]) [] []

Does anyone know why it's not t0 in join condition but t46?
If needed I'll show my deps.lock, maybe such situation was already fixed, but I was googling for answer for several days - and nothing.
Thanks in advance

Originally created by @doctrinebot on GitHub (Jul 5, 2012). Originally assigned to: @beberlei on GitHub. Jira issue originally created by user cfyzz: Hello developers of Doctrine. I appreiate your work on a such complicated project. So seems I'found a bug in Doctrine in generating SQL I had written this issue on Symfony forum but noone is answering, so maybe I've found the bug of Doctrine or FOSUserBundle I'm using Symfony 2.0.12, so I've installed as git submodules FOSUserBundle, created User Entity with one-to-one relationship with Company Entity, here goes the code: ``` <?php namespace AV\TradeBundle\Entity; use FOS\UserBundle\Entity\User as BaseUser; use Doctrine\ORM\Mapping as ORM; /**** @ORM\Entity @ORM\Table(name="fos_user") / class User extends BaseUser { /* @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /**** @var company * @ORM\OneToOne(targetEntity="Companies", mappedBy="user") ** **/ private $company; public function construct() { parent::construct(); // your own logic } public function getCompany() { return $this->company; } public function setCompany($company) { $this->company = $company; } } ``` and piece of Company Entity: ``` <?php /**** * @var user * * @ORM\OneToOne(targetEntity="user", inversedBy="company") * @ORM\JoinColumn(name="user_id", referencedColumnName="id") */ private $user; ``` When creating fixtures I'm using such method (all references are set, and I have checked for foreign keys in DB - everything is fine) $this->container->get('fos_user.user_manager')->createUser($user); When I'm trying to login I see such error: ``` SQLSTATE[42S22]: Column not found: 1054 Unknown column 't46.id' in 'on clause' ``` The whole SELECT statement that I found in logs sounds like this one: ``` SELECT t0.username AS username1, t0.username*canonical AS username_canonical2, t0.email AS email3, t0.email_canonical AS email*canonical4, t0.enabled AS enabled5, t0.salt AS salt6, t0.password AS password7, t0.last*login AS last_login8, t0.locked AS locked9, t0.expired AS expired10, t0.expires_at AS expires*at11, t0.confirmation*token AS confirmation_token12, t0.password_requested_at AS password_requested_at13, t0.roles AS roles14, t0.credentials_expired AS credentials*expired15, t0.credentials*expire_at AS credentials_expire_at16, t0.id AS id17, t18.id AS id19, t18.egrpou AS egrpou20, t18.business_form AS business*form21, t18.title AS title22, t18.phone*code AS phone_code23, t18.phone_country_code AS phone_country_code24, t18.phone AS phone25, t18.fax_code AS fax*code26, t18.fax*country_code AS fax_country_code27, t18.fax AS fax28, t18.website AS website29, t18.fio AS fio30, t18.birthday AS birthday31, t18.firm_created AS firm*created32, t18.employees*count AS employees_count33, t18.logo AS logo34, t18.zip AS zip35, t18.street AS street36, t18.position AS position37, t18.thumb_logo AS thumb*logo38, t18.description AS description39, t18.created*at AS created_at40, t18.email AS email41, t18.cities_id AS cities_id42, t18.regions_id AS regions_id43, t18.countries_id AS countries*id44, t18.user*id AS user_id45 FROM fos_user t0 LEFT JOIN companies t18 ON t18.user_id = t46.id WHERE t0.username*canonical = ? (["cfyzz"]) [] [] ``` Does anyone know why it's not t0 in join condition but t46? If needed I'll show my deps.lock, maybe such situation was already fixed, but I was googling for answer for several days - and nothing. Thanks in advance
admin added the Bug label 2026-01-22 13:51:53 +01:00
admin closed this issue 2026-01-22 13:51:54 +01:00
Author
Owner

@doctrinebot commented on GitHub (Jul 5, 2012):

Comment created by @beberlei:

Fixed formatting

@doctrinebot commented on GitHub (Jul 5, 2012): Comment created by @beberlei: Fixed formatting
Author
Owner

@doctrinebot commented on GitHub (Jul 5, 2012):

Comment created by @beberlei:

What version of Doctrine are you using? you can check in vendor/doctrine-orm/lib/Doctrine/ORM/Version.php

@doctrinebot commented on GitHub (Jul 5, 2012): Comment created by @beberlei: What version of Doctrine are you using? you can check in vendor/doctrine-orm/lib/Doctrine/ORM/Version.php
Author
Owner

@doctrinebot commented on GitHub (Jul 6, 2012):

Comment created by cfyzz:

Thanks, Benjamin, for so quick answer.
I've checked the file you mentioned - the version is "2.1.6"

@doctrinebot commented on GitHub (Jul 6, 2012): Comment created by cfyzz: Thanks, Benjamin, for so quick answer. I've checked the file you mentioned - the version is "2.1.6"
Author
Owner

@doctrinebot commented on GitHub (May 1, 2013):

Comment created by @beberlei:

This was fixed in later versions.

@doctrinebot commented on GitHub (May 1, 2013): Comment created by @beberlei: This was fixed in later versions.
Author
Owner

@doctrinebot commented on GitHub (Sep 8, 2013):

Issue was closed with resolution "Duplicate"

@doctrinebot commented on GitHub (Sep 8, 2013): Issue was closed with resolution "Duplicate"
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#2406