Doctrin2错误地级联了一对多关系



我有两个条令实体:
Commessa

/**
* @ORMId
* @ORMColumn(type = "bigint")
* @ORMGeneratedValue(strategy = "AUTO")
*/
private $id;
/* ... */
/*
* @ORMOneToMany(targetEntity = "AppBundleEntityPipelinepipeline", mappedBy = "commessa", cascade = {"persist", "remove"})
*/
private $pipelines;

和管道

/**
* @ORMId
* @ORMColumn(type = "bigint")
* @ORMGeneratedValue(strategy = "AUTO")
*/
private $id;
/* ... */
/**
* @ORMManyToOne(targetEntity = "AppBundleEntityCommessacommessa", inversedBy = "pipelines")
* @ORMJoinColumn(name = "id_commessa", name = "id")
*/
private $commessa;

正如您所看到的,这两个实体都有一个AUTO-INCREMENT,一个名为id的单字段主键,以及与另一个的双向关联;每当我使用commessa时,管道都会自动持久化
此外,两个实体都只有一个用于id的getter方法,而没有一个setter方法。

现在,每当我试图刷新Commessa类的对象实例(包括多个管道)时,就会弹出以下错误:

使用参数[","frontend","9"]执行"INSERT INTO pipeline(descriptione,nome_logico,id)VALUES(?,?,?)"时发生异常:

SQLSTATE[23000]:完整性约束冲突:1062键"PRIMARY"的重复条目"9">

在我的代码中,我没有设置管道的id,并且在刷新之前(以及持久化之后)转储Commessa对象表明它被正确填充,并且管道具有;空";作为id,我想这是正确的。

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

"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点陈述了

现在有两个错误涉及将级联合并与双向关联结合使用。但相关的票证链接已失效。

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

@ORM\JoinColumn(name="id_commessa",name="id")错误。有2次名称字段

相关内容

  • 没有找到相关文章

最新更新