Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Doctrine2错误地级联了一对一的关系_Php_Doctrine Orm_Symfony_One To Many - Fatal编程技术网

Php Doctrine2错误地级联了一对一的关系

Php Doctrine2错误地级联了一对一的关系,php,doctrine-orm,symfony,one-to-many,Php,Doctrine Orm,Symfony,One To Many,我有两个学说实体: 康姆萨 和管道 /** * @ORM\Id * @ORM\Column(type = "bigint") * @ORM\GeneratedValue(strategy = "AUTO") */ private $id; /* ... */ /** * @ORM\ManyToOne(targetEntity = "AppBundle\Entity\Commessa\commessa", inversedB

我有两个学说实体:
康姆萨

和管道

/**
 * @ORM\Id
 * @ORM\Column(type = "bigint")
 * @ORM\GeneratedValue(strategy = "AUTO")
 */
private $id;

/* ... */

/**
 * @ORM\ManyToOne(targetEntity = "AppBundle\Entity\Commessa\commessa", inversedBy = "pipelines")
 * @ORM\JoinColumn(name = "id_commessa", name = "id")
 */
private $commessa;
如您所见,这两个实体都有一个称为id的自动递增单字段主键,以及与另一个实体的双向关联;只要我使用commessa,管道就会自动持久化。
此外,这两个实体都只有id的getter方法,而不是setter方法

现在,每当我尝试刷新包含多个管道的Commessa类的对象实例时,都会弹出以下错误:

使用参数[“”、“前端”、“9”]执行“插入管道(描述、命名逻辑、id)值(?,?)”时发生异常:

SQLSTATE[23000]:完整性约束冲突:密钥“PRIMARY”的1062重复条目“9”

在我的代码中,我没有设置管道的id,在刷新之前(以及持久化之后)转储Commessa对象表明它已正确填充,并且管道的id为“null”,我猜这是正确的

通过Symfony profiler,将报告以下查询:

"START_TRANSACTION"
INSERT INTO commessa (codice_commessa, data_creazione, data_scadenza, descrizione, id_anagrafica, id_cliente, id_stato, id_tipo_commesa) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
Parameters: [ 1 => lyme, 2 => 2017-01-13 10:47:53, 3 => 2017-01-17 00:00:00, 4 => Fai Lyme, 5 => 1, 6 => 1, 7 => 1, 8 => 1 ] 

INSERT INTO pipeline (descrizione, nome_logico, id) VALUES (?, ?, ?)
Parameters: [1 => , 2 => frontend, 3 => 10] 

INSERT INTO pipeline (descrizione, nome_logico, id) VALUES (?, ?, ?)
Parameters: [1 => , 2 => backend, 3 => 10] 
"ROLLBACK"
然后我偶然发现,在第28.1.3点

现在有两个bug与级联合并和双向关联的使用有关。 但是相关的票务链接已经失效

这可能是我的问题吗?
如果是,我如何解决这个问题?

@ORM\JoinColumn(name=“id\u commessa”,name=“id”)是错误的。有两个times name字段

我假设这两个对象实际上不是同一个对象,添加两次?(因为它们的属性都相同)对不起,我错误地复制了两次相同的查询;第二个字段是不同的。我编辑了这个问题。*@ORM\JoinColumn(name=“id\u commessa”,name=“id”)是错误的。有2倍的名字field@JasminMistry谢谢你的回答;如果你是对的,请接受ans
"START_TRANSACTION"
INSERT INTO commessa (codice_commessa, data_creazione, data_scadenza, descrizione, id_anagrafica, id_cliente, id_stato, id_tipo_commesa) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
Parameters: [ 1 => lyme, 2 => 2017-01-13 10:47:53, 3 => 2017-01-17 00:00:00, 4 => Fai Lyme, 5 => 1, 6 => 1, 7 => 1, 8 => 1 ] 

INSERT INTO pipeline (descrizione, nome_logico, id) VALUES (?, ?, ?)
Parameters: [1 => , 2 => frontend, 3 => 10] 

INSERT INTO pipeline (descrizione, nome_logico, id) VALUES (?, ?, ?)
Parameters: [1 => , 2 => backend, 3 => 10] 
"ROLLBACK"