与持久关系的麻烦

时间:2016-04-12 11:47:26

标签: symfony doctrine-orm

当我试图用它的关系来持久化用户实体时,我遇到了一个问题:

class User {

        /**
         * @OneToMany(targetEntity="AppBundle\Entity\UserDataAttribute", mappedBy="user", cascade={"persist", "remove"})
         * @var \Doctrine\Common\Collections\Collection
         */
        private $customAttributes;
}

class UserDataAttribute
{
        /**
         * @ManyToOne(targetEntity="AppBundle\Entity\User", inversedBy="customAttributes")
         * @JoinColumn(name="user_id", referencedColumnName="id")
         */
        private $user;
}

当我在数据库中将@JoinColumn指定为name="user_id"时,请执行以下查询:

INSERT INTO user_data_attr (user_id) VALUES (null);

当我在数据库中将@JoinColumn指定为name="userId"时,会发出以下查询:

 INSERT INTO user_data_attr (userId) VALUES (2323 (the actual value)));

但我需要的是:

INSERT INTO user_data_attr (user_id) VALUES (2323);

我做错了什么?

1 个答案:

答案 0 :(得分:1)

app/console doctrine:schema:validate

之前检查: Symfony 2的 `app/console doctrine:schema:valid` for Symfony 3

Z