symfony2:不能以一对一关系合并形式插入


symfony2 : cannot insert in one-to-one relation merge form

客户主体与信贷主体有一对一的关系。当我尝试插入时,我得到以下错误:

*

Jobeet''JobBundle''Entity''Credit类型的实体缺少已分配的字段"ID"的ID。此实体的标识符生成策略要求在EntityManager#persist()之前填充ID字段被调用。如果您希望自动生成标识符需要相应地调整元数据映射。

*

我错过了什么?

Customer.orm.yml

type: entity
    table: customer
    id:
        id:
            type: integer
            generator: { strategy: AUTO }
    fields:
        name:
            type: string
            length: 255
            nullable: true
        address:
            type: string
            length: 255
    oneToOne:
        credit:
            targetEntity: Credit
            mappedBy: customer
            cascade: [persist]

Credit.orm.yml

type: entity
table: credit
id:
    id:
        type: integer
        generator: { strategy: AUTO }
fields:
    customer_id:
        type: integer
        unique: true
        nullable: false
    credit_name:
        type: string
        length: 255
        nullable: true
    credit_desc:
        type: string
        length: 255
        nullable: true
oneToOne:
    customer:
        targetEntity: Customer
        inversedBy: credit
        joinColumn:
            name: customer_id
            referencedColumnName: id

CustomerType.php

class CustomerType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name')
            ->add('address')
            ->add('credit', new CreditType())
        ;
    }
}

尝试将Credit.orm.yml更改为

type: entity
    table: credit
    id:
        id:
            type: integer
            unique: true
            column: other_non_conflict_column_name
...