Symfony2, Doctrine2, Entity Repository



我们有这样的存储库

class CronInfoCharacterInfoRepository extends EntityRepository
{
    /**
     * @param string|integer $characterID
     * @return void
     */
    public function add($characterID)
    {
        if (!$this->find($characterID)) {
            $oEntry = new CronInfoCharacterInfo();
            $oEntry->setCharacterID($characterID);
            $this->getEntityManager()->persist($oEntry);
            $this->getEntityManager()->flush();
        }
    }
}

但是我想通过DQL插入新条目。如何通过$this->createQueryBuilder()... ?在存储库中使用"实体管理器"是否正常?

你不能使用 DQL 插入,文档对此进行了说明

DQL 中不允许使用 INSERT 语句,因为实体及其 必须通过以下方式将关系引入持久性上下文中 EntityManager#persist() 来确保对象模型的一致性。

http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html

repo 中使用 enitity 管理器是完全可以的。你现在做的是正确的!

相关内容

  • 没有找到相关文章

最新更新