我正在根据这里描述的用例来解决一个问题: Use-Case 2: Simple Derived Identity
我的Symfony应用程序中具有以下学说实体和映射:
class User
{
private $entity_id;
private $address;
...
}
class Address
{
private $user;
...
}
AppBundle\Entity\User:
type: entity
id:
entity_id:
type: integer
generator:
strategy: AUTO
oneToOne:
address:
targetEntity: Address
mappedBy: user
cascade: ["persist"]
AppBundle\Entity\Address:
type: entity
id:
user:
associationKey: true
oneToOne:
user:
targetEntity: User
inversedBy: address
joinColumn:
name: entity_id
referencedColumnName: entity_id
每次我执行涉及用户实体的DQL查询时,Doctrine都会为每个匹配的用户执行一个附加查询,以检索相应的地址实体。即使代码中从未使用过地址数据,每次也会发生这种情况。
我尝试在香草Symfony安装上重现此问题,但是遇到另一个问题,由于出现错误,我无法执行以下代码(AppBundle \ Entity \ Address类型的实体缺少分配的ID对于“用户”字段):
$user = (new User())->setAddress(new Address());
$entityManager->persist($user);
$entityManager->flush();
您有任何提示或有什么问题吗?
最诚挚的问候