Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-1212

Exception of mapping of ID generation strategy

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: Git Master
    • Fix Version/s: 2.1
    • Component/s: Mapping Drivers
    • Security Level: All
    • Labels:
      None
    • Environment:
      Apache 2.2.16
      PHP 5.3.3
      Ubuntu 11

      Description

      Hi all,

      After updating today Doctrine 2 from master branch I'm getting:

      Entity of type "Entity" is missing an assigned ID. The identifier generation strategy for this entity requires the ID field to be populated before EntityManager#persist() is called. If you want automatically generated identifiers instead you need to adjust the metadata mapping accordingly.

      Was there a change on the mapping of ID generation strategy? I was using a commit of the master branch from 1 o 2 weeks ago and it was working ok. I took a look at the repo for changes on the last days but I couldn't find anything related to this.

      I paste the mapping and entities here:

      Element:

      /**
       * @ORM\MappedSuperclass
       */
      abstract class Element
      {
          /**
           * @ORM\Id
           * @ORM\Column(type="integer")
           * @ORM\GeneratedValue(strategy="IDENTITY")
           */
          protected $id;
      }
      

      File:

      /**
       * @ORM\Entity
       * @ORM\Table(name="file")
       * @ORM\InheritanceType("JOINED")
       * @ORM\DiscriminatorColumn(name="discriminator", type="string")
       * @ORM\DiscriminatorMap({
              "image"  = "Image",
          })
       */
      abstract class File extends Element
      {
           // Fields
      }
      

      And Image:

      /**
       * @ORM\Entity
       * @ORM\Table(name="image")
       */
      class Image extends File
      {
           // Fields
      }
      

      Thanks in advance!

        Activity

        Hide
        Benjamin Eberlei added a comment -

        Do you "use" the mapping AS ORM namespace?

        Show
        Benjamin Eberlei added a comment - Do you "use" the mapping AS ORM namespace?
        Hide
        Gustavo Falco added a comment -

        Yes, sorry for not including that. I had to add this to my entities 1 o 2 weeks ago when I updated all my vendors:

        use Doctrine\ORM\Mapping as ORM;

        Is it still right?

        Show
        Gustavo Falco added a comment - Yes, sorry for not including that. I had to add this to my entities 1 o 2 weeks ago when I updated all my vendors: use Doctrine\ORM\Mapping as ORM; Is it still right?
        Hide
        Benjamin Eberlei added a comment -

        Fixed

        Show
        Benjamin Eberlei added a comment - Fixed
        Hide
        Gustavo Falco added a comment -

        Great!

        I want to say just in case BTW that removing the mapped superclass and moving all its fields to, for example, "File" makes the error go away.

        Thanks a lot!

        Show
        Gustavo Falco added a comment - Great! I want to say just in case BTW that removing the mapped superclass and moving all its fields to, for example, "File" makes the error go away. Thanks a lot!

          People

          • Assignee:
            Benjamin Eberlei
            Reporter:
            Gustavo Falco
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: