【发布时间】:2014-03-26 15:37:35
【问题描述】:
我有自定义实体存储库(比如说CategoryRepository),它返回 Doctrine 实体。我也有新创建的实体(比如说Product),我想坚持。
产品与类别相关,在这种情况下,产品是关系的拥有方,所以我有以下代码:
$category = $categoryRepository->customGetCategory($someCriteria);
$product = new Product();
$product->setCategory($category);
$em->persist($product);
结果是
[学说\ORM\ORMInvalidArgumentException]
通过关系发现了一个新实体 'Acme\SomethingBundle\Entity\Product#category' 未配置 级联实体的持久操作:blahblah。为了解决这个 问题:在这个未知数上显式调用 EntityManager#persist() 实体或配置级联在映射中保留此关联 例如@ManyToOne(..,cascade={"persist"})
现在我知道,使用\Doctrine\ORM\Query::getResult() 方法返回的自定义存储库方法返回的所有实体,其中查询对象由EntityManager::createQuery($dql) 工厂方法返回,默认情况下都是分离的。所以我得到了存在于数据库中的存储库返回的实体,我找不到一种方法来管理它,就像 f 返回的任何实体一样。前任。 $repository->findBy() 方法。
谁能指出我正确的方向?我真的很想解决这个问题,这让我很生气。
【问题讨论】:
-
能否请您发布您的类别和产品实体? (只有它们之间关系的代码sn-ps)