Doctrine 不生成实体 ID

Doctrine not generating entity ID

我正在尝试创建一个实体,但我在该实体的 ID 上得到了一个空值,这是一个生成的值。

控制器:

if($buRepository->findOneBy(['buName' => $row['Bu1'], 'dateDeleted' => null]) > null)

elseif($buRepository->findOneBy(['buName' => $row['Bu1'], 'dateDeleted' => null]) === null) 
{
       $bu1 = new Bu();
       $bu1->setBuName($row['Bu1']);
       $bu1->setLastUpdated(new \DateTime('now'));
       $bu1->setDateDeleted(null);
       $bu1->setSrcId(3);
       $bu1->setIdInSource($bu1->getBuId());
}

实体:

 /**
     * @var int
     *
     * @ORM\Column(name="bu_id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $buId;

一旦我的实体尝试刷新,我就在 buid 上收到错误,说它不能为空。

尝试 MySQL

跌至 AUTO_INCREMENT 的 AUTO 策略

如果实体未刷新,则不会创建和分配 Buid,解决它的最佳方法是放置触发器。 由于 IdInSource 不能是 NULL 值,但应该是 BuId (没有关系只是分配 INT 值),我给它分配了一个值 0。 对于 IdInSource0 的每个实体,我的数据库触发器将其替换为 BuId