可以说,我有一个注释函数,当名称仍然不存在时,应始终将用户添加到数据库 .

目前我首先进行检查,如果不成功,我会创建一个新的实体并持久保存用户 .

//try to find userName in DB
    $user = $this->entityManager->getRepository('AppBundle:User')->findByName($userName);

    //create new user if not existing
    if (!$user) {

        $user = new \AppBundle\Entity\User();
        $user->setName($userName);
        $this->entityManager->persist($user);
    }

稍后将 $user 实体添加/链接到 $comment 实体 . 然后一切都会被冲洗掉 .

我现在的问题是,不仅一个注释被刷新,而且通常是多个注释一起 . 看来,新用户会写一个以上的评论 .

然后我在repo中的检查不起作用,因为新用户只是持久但尚未刷新 . 我会遇到一个独特的失败,或者新的用户名会被添加两次 .

我知道,我可以使用新的持久用户创建一个数组,并在检查repo时检查此数组 . 但我想知道是否有教条方法来处理这个问题?