New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DDC-2543: EntityManager#getReference returns NULL on JOINED inheritance. #3268
Comments
Comment created by @Ocramius: Did you validate your mappings first? Also, is |
Comment created by naroga: Symfony's profiler tells me there are no invalid mappings. Also, as you can see from the entities above, PessoaJuridica inherits from Pessoa and is defined on the DiscriminatorMap. It is a leaf. Everything seems to be consistent, but I keep getting null when trying to fetch the entity (from ->find(3)) or its proxies (from ->getRereference). |
Comment created by @Ocramius: [~naroga] what about the logged SQL ? Any queries being run? |
Comment created by naroga: My logging is disabled. I'm not really running the project with symfony, I'm running with Zend Framework 1. I only imported the mappings to a symfony project and called an entity on the controller so I could have my mappings validated. The error occurs on a real life scenario, on ZF1. I have no SQL loggers there. |
Comment created by @Ocramius: [~naroga] can you attach an https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Logging/EchoSQLLogger.php |
Comment created by naroga: There was no bug. After much debugging, I figured out the problem. Something was messing with the tables, causing the issue. |
Issue was closed with resolution "Invalid" |
Jira issue originally created by user naroga:
The following line returns null, when it shouldn't:
PessoaJurica inherits from Pessoa. Here goes the mapping.
The thing is: both 'Pessoa' and 'PessoaJuridica' with ID=3 exist on the database. Pessoa.tipo = "Jurídica". Everything seems to be correctly set up, but getReference keeps returning null.
These are my tables:
mysql> SELECT * FROM pessoa;
|| id || nome || tipo || ativo || dtregistro ||
| 1 | Bruno | Física | 1 | 2013-01-01 00:00:00 |
| 2 | Gestor teste | Jurídica | 1 | 2013-01-01 00:00:00 |
| 3 | Coordenador teste | Jurídica | 1 | 2013-01-01 00:00:00 |
| 4 | Pessoa Internacional | Internacional | 1 | 2013-01-01 00:00:00 |
| 5 | Empresa | Jurídica | 1 | 2013-01-01 00:00:00 |
5 rows in set (0.00 sec)
mysql> SELECT id, cnpj FROM pessoajuridica;
|| id || cnpj ||
| 3 | 33153182000190 |
| 5 | 88302137000141 |
| 2 | 99276220000100 |
3 rows in set (0.00 sec)
More info:
$em->getRepository("app:Pessoa")->find(3); //returns a PessoaJuridica entity, as it should.
and
$em->getRepository("app:PessoaJuridica")->find(3); // returns null. No idea why.
The text was updated successfully, but these errors were encountered: