Details
Description
If I specify a single inheritance structure with the mapping classes specified with fully qualified namespace in the annotation and then if I create a new mapped entity and try to save it, doctrine specifies the value for the discriminator column as NULL and thus the fush fails with mysql complaining the discriminator column to be NULL. If I specify the mapping classes without fully qualified namespace the persist works as expected
For example this fails:
<?php namespace Entities; /** * @Entity * @InheritanceType("SINGLE_TABLE") * @DiscriminatorColumn(name="itemType", type="integer") * @DiscriminatorMap({ * "0"="\Entities\Data\Integer", * "5"="\Entities\Data\Text", * "6"="\Entities\Data\Form" * }) */ class master {
But this works as expected:
<?php namespace Entities; /** * @Entity * @InheritanceType("SINGLE_TABLE") * @DiscriminatorColumn(name="itemType", type="integer") * @DiscriminatorMap({ * "0"="Entities\Data\Integer", * "5"="Entities\Data\Text", * "6"="Entities\Data\Form" * }) */ class master {
The obivous workaround for now is to not use fully qualified namespaced classes for the discriminator maps, but rather relative.
attached is the doctrine sanbox with the failing setup
Namespaces are never referred with a leading prefix in strings. This is PHP convention. However we can easily ltrim the slash here in the mapping drivers for convenenince.
schedulding for 2.0.5