0

假设我有两个具有一对多关系的实体。称它们为 EntityOne 和 EntityMany。

我想将 EntityMany 保存到数据库中。我没有 EntityOne 的实例,但我知道所需的 entity_one_id。

有没有办法在不从数据库中检索 EntityOne 实例的情况下保存 EntityMany?

我不想对保存的 EntityMany 做任何事情。我只是想保存它。

在这种情况下,我能够保存 EntityMany 的唯一方法是从数据库中检索 EntityOne,执行 $entity_many->setEntityOne($entity_one),然后持久化 EntityMany。

这行得通,但是当所有 db 需要的是 id 时,这似乎是对 EntityOne 的不必要查询。

我尝试简单地实例化一个新的 EntityOne() 并设置 id(我必须为自动生成的整数 id 添加一个设置器),然后使用那个未保存的实例,但 Doctrine 对几个错误并不满意。

4

1 回答 1

1

EntityManager 有一个方法“getReference”——你可以用它来实现你的目标。它应该看起来像这样:

$entityRef = $em->getReference('EntityOne', $entityOneId);
$entityMany->setEntityOne($entityRef);
// ...

看这里:

http://docs.doctrine-project.org/en/latest/reference/configuration.html#proxy-objects

于 2013-01-20T16:51:25.763 回答