[MODM-123] Single Collection Inheritance : hydration won't work properly Created: 17/Feb/11 Updated: 23/Feb/11 Resolved: 23/Feb/11
|Project:||Doctrine MongoDB ODM|
|Reporter:||Billy Bob||Assignee:||Jonathan H. Wage|
Mac OS X, MAMP
There is still a problem with Single Collection Inheritance.
Please consider the following code :
Resulting in the database with :
Now if I do :
then $result is an instance of Stuffs
But if I try :
then $result is an instance of Items
Note that '$a->id' is a string, the same string containing '4d5dd082b53251b84e000000', so :
are semantically equivalent. It seems however that hydration would ignore the DiscriminatorMap in the second example.
However If you do :
You'll get a Stuffs as a result.
Now I tried to find a workaround when you don't know the type of the returned object. My initial intention was to first fetch a document with :
Then I'm testing a property in the objet to see if it's a Stuffs, if it is, I tried an new :
In order to fetch a Stuffs. But ... I still get a *Items"!
So basically, if you do :
You get a Stuffs. But if you do :
You get a Items!
|Comment by Jonathan H. Wage [ 18/Feb/11 ]|
Hi, can you make a phpunit testcase here? https://github.com/doctrine/mongodb-odm/tree/master/tests/Doctrine/ODM/MongoDB/Tests/Functional/Ticket
|Comment by Billy Bob [ 18/Feb/11 ]|
Sorry but I'm not familiar with phpunit.
If that can help, I've made more tests here. Strangely when I deleted all the documents in the test base and created new ones, the hydration then worken properly! However in my real project, the issue is still here ...
In conclusion it seems that the issue is random.
|Comment by Jonathan H. Wage [ 19/Feb/11 ]|
I am not able to produce the issue here. Can you make a executable test that I can run so that I can see what you see?
|Comment by Billy Bob [ 23/Feb/11 ]|
Doesn't seem to be an issue in BETA2.