使用AUTO策略时设置ID

时间:2014-10-30 12:02:26

标签: symfony doctrine-orm doctrine

我正在尝试加载灯具,并且具有准确的ID'使用,所以代码是:

    foreach ($this->categories as $index=>$category) {
        $newCategory = new Category();

        $metadata = $manager->getClassMetaData(get_class($newCategory));
        $metadata->setIdGenerator(new \Doctrine\ORM\Id\AssignedGenerator());            

        $newCategory->setId($index == 6 ? self::SOME_ID : ($index == 7 ? self::SOME_OTHER_ID : $index + 1));

        $manager->persist($newCategory);
        $this->setReference('CategoryRef-'.$index, $newCategory);
    }

    $manager->flush();

问题是,当我从其他灯具(Category)加载对此实体(Product)的引用时,我能够获得{ {1}}我正在寻找。但是,idProduct的映射失败,如果我排除映射到Category,数据库仍将填充自动生成的Category值。< / b>所以,错误代码是:

id

在我看来,在某种程度上,我正在使用2个不同的Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`database`.`product`, CONSTRAINT `FK_D34A04AD12469DE2` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`)) :一个 - 包含id我在代码中定义上面,第二个 - 由id生成。

question中也描述了这个问题,但不幸的是,没有一个解决方案对我有所帮助。

0 个答案:

没有答案