可以说,我有一个注释函数,当名称仍然不存在时,应始终将用户添加到数据库 .
目前我首先进行检查,如果不成功,我会创建一个新的实体并持久保存用户 .
//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时检查此数组 . 但我想知道是否有教条方法来处理这个问题?