Skip to content

Loading…

DDC-1109: SINGLE_TABLE mapping fails to set the discriminator column value on persist if the mapping classes are specified with fully qualified namespace #1706

Closed
doctrinebot opened this Issue · 3 comments

2 participants

@doctrinebot

Jira issue originally created by user simen:

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

@doctrinebot

Comment created by @beberlei:

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

@doctrinebot

Comment created by @beberlei:

Fixed.

@doctrinebot

Issue was closed with resolution "Fixed"

@beberlei beberlei was assigned by doctrinebot
@doctrinebot doctrinebot added this to the 2.0.5 milestone
@doctrinebot doctrinebot closed this
@doctrinebot doctrinebot added the Bug label
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.