教义合并无法正常工作

时间:2018-11-19 12:28:18

标签: php symfony doctrine-orm

我正在从客户端获取以下json数据。 JSON包含父级和子级详细信息,如下所示-

{
  id : 1,
  name : "Parent"
  children : [
      { id : 1, name : "A" },
      { id : 2, name : "B" }
   ]
}

我正在将这些json数据映射到父对象和子对象。

父母

class Parent{


    /** @Id @Column(type="integer",name="order_no") @GeneratedValue * */
    protected $id;

     /**
     * @OneToMany(targetEntity="Child",cascade={"merge"}, mappedBy="parent" )
     */
    protected $children;

}

孩子

class SalesOrderDetail extends BaseEntity {

    /** @Id @Column(type="integer") @GeneratedValue * */
    protected $id;

    /**
     * @ManyToOne(targetEntity="parent")
     * @JoinColumn(name="parent_id")
     */
    protected $salesOrder;

}

到目前为止很好。

现在的问题是当我尝试合并父项时

$em->merge($parent)

我收到以下错误。注意:整个对象的父级和子级都是非托管对象,因此我尝试合并。如果我只是合并父项,则可以正常工作,但是如果我尝试保存父项及其子项的全部内容,则会出错。

  

类型:Doctrine \ ORM \ ORMInvalidArgumentException消息:多个   通过给定的关联找到非持久的新实体   图表:*通过关系发现了一个新实体   未配置为的“ Ziletech \ Database \ Entity \ Parent#itemSet”   实体的级联持久化操作:   Ziletech \ Database \ Entity \ Child @ 0000000052218380000000007058b4a6。至   解决此问题:在上显式调用EntityManager#persist()   这个未知的实体或配置级联会在   例如@ManyToOne(..,cascade = {“ persist”})的映射。如果你   无法找出导致问题实施的实体   “ Ziletech \ Database \ Entity \ Child #__ toString()”以获取线索。 *新   通过关系找到实体   未配置为的“ Ziletech \ Database \ Entity \ Parent#itemSet”   实体的级联持久化操作:   Ziletech \ Database \ Entity \ Child @ 0000000052218071000000007058b4a6。至   解决此问题:在上显式调用EntityManager#persist()   这个未知的实体或配置级联会在   例如@ManyToOne(..,cascade = {“ persist”})的映射。如果你   无法找出导致问题实施的实体   “ Ziletech \ Database \ Entity \ Child #__ toString()”以获取线索。

0 个答案:

没有答案